欢迎光临惠州市白事服务网
详情描述

AJAX GET请求提交数据的具体步骤如下:

1. 创建 XMLHttpRequest 对象

// 现代浏览器
const xhr = new XMLHttpRequest();

// 兼容旧版IE(如果需要)
if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
} else {
    // IE6及以下
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
}

2. 设置请求方法和URL(包含数据)

GET请求的数据需要附加在URL后面:

const baseUrl = 'https://api.example.com/data';
const params = {
    name: '张三',
    age: 25,
    city: '北京'
};

// 将参数对象转换为URL查询字符串
function objectToQueryString(obj) {
    return Object.keys(obj).map(key => 
        encodeURIComponent(key) + '=' + encodeURIComponent(obj[key])
    ).join('&');
}

const queryString = objectToQueryString(params);
const url = `${baseUrl}?${queryString}`;

xhr.open('GET', url, true);  // true表示异步请求

3. 设置请求头(可选)

xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.setRequestHeader('Authorization', 'Bearer token123'); // 如果需要认证

4. 设置响应处理函数

xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {  // 请求完成
        if (xhr.status === 200) {  // 请求成功
            console.log('请求成功:', xhr.responseText);
            // 处理响应数据
            const data = JSON.parse(xhr.responseText);
        } else {
            console.error('请求失败:', xhr.status);
        }
    }
};

// 或者使用更现代的onload/onerror
xhr.onload = function() {
    if (xhr.status === 200) {
        console.log('成功:', xhr.responseText);
    }
};

xhr.onerror = function() {
    console.error('请求出错');
};

5. 发送请求

xhr.send();  // GET请求send()不带参数

完整示例

function sendGetRequest() {
    const xhr = new XMLHttpRequest();

    // 准备数据
    const params = {
        userId: 123,
        timestamp: Date.now(),
        search: '关键词'
    };

    // 构建URL
    const url = 'https://api.example.com/search?' + 
                new URLSearchParams(params).toString();

    xhr.open('GET', url, true);

    xhr.onload = function() {
        if (xhr.status >= 200 && xhr.status < 300) {
            try {
                const response = JSON.parse(xhr.responseText);
                console.log('收到响应:', response);
                // 处理数据
            } catch (error) {
                console.error('JSON解析错误:', error);
            }
        } else {
            console.error('请求失败,状态码:', xhr.status);
        }
    };

    xhr.onerror = function() {
        console.error('网络错误');
    };

    // 设置超时
    xhr.timeout = 5000; // 5秒超时
    xhr.ontimeout = function() {
        console.error('请求超时');
    };

    xhr.send();
}

使用 Fetch API 的现代方法(推荐)

async function fetchGetRequest() {
    const params = { id: 123, name: 'test' };
    const url = 'https://api.example.com/data?' + 
                new URLSearchParams(params).toString();

    try {
        const response = await fetch(url, {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer token123'
            },
            // mode: 'cors',  // 跨域设置
            // cache: 'no-cache'  // 缓存控制
        });

        if (!response.ok) {
            throw new Error(`HTTP错误: ${response.status}`);
        }

        const data = await response.json();
        console.log('数据:', data);
        return data;

    } catch (error) {
        console.error('请求失败:', error);
        throw error;
    }
}

使用 jQuery 的方法

$.ajax({
    url: 'https://api.example.com/data',
    type: 'GET',
    data: {
        name: '张三',
        age: 25
    },
    dataType: 'json',
    success: function(response) {
        console.log('成功:', response);
    },
    error: function(xhr, status, error) {
        console.error('失败:', error);
    }
});

// 简写形式
$.get('https://api.example.com/data', 
    { name: '张三', age: 25 },
    function(data) {
        console.log('数据:', data);
    }
);

注意事项

URL长度限制:GET请求有URL长度限制(通常2KB-8KB) 安全性:参数在URL中可见,不适合传输敏感数据 缓存问题:浏览器可能会缓存GET请求
// 添加时间戳防止缓存
params._t = Date.now();
编码:参数值需要正确编码(使用encodeURIComponent跨域:如果需要跨域,服务器需要设置CORS头 性能:适合获取数据,不适合大量数据提交

建议优先使用Fetch API,它更现代、支持Promise,语法更简洁。

相关帖子
如果手机的人脸识别信息被泄露,普通人应该采取哪些紧急防护措施?
如果手机的人脸识别信息被泄露,普通人应该采取哪些紧急防护措施?
惠州市白事殡葬一条龙服务-白事一条龙服务,殡礼布置
惠州市白事殡葬一条龙服务-白事一条龙服务,殡礼布置
如果对物业公司的服务质量不满意,法律上可以拒绝缴纳物业费吗?
如果对物业公司的服务质量不满意,法律上可以拒绝缴纳物业费吗?
惠州市做网站&专业网站设计公司,收费透明
惠州市做网站&专业网站设计公司,收费透明
在自动化趋势下,打工者如何培养难以被替代的核心软实力?
在自动化趋势下,打工者如何培养难以被替代的核心软实力?
2026年,是否有更智能、更安全的方式替代传统的纸质信息卡?
2026年,是否有更智能、更安全的方式替代传统的纸质信息卡?
办理房子抵押贷款流程中房子能住吗?抵押期间权益解析
办理房子抵押贷款流程中房子能住吗?抵押期间权益解析
面对墙壁和地面“冒水”的现象,正确的应急处理步骤应该是怎样的?
面对墙壁和地面“冒水”的现象,正确的应急处理步骤应该是怎样的?
2026年,是否有更便捷的官方数字平台可帮助劳动者查询和确认自己的薪酬记录?
2026年,是否有更便捷的官方数字平台可帮助劳动者查询和确认自己的薪酬记录?
2026年“身后一件事”联办服务,是否支持异地远程办理或委托他人代办?
2026年“身后一件事”联办服务,是否支持异地远程办理或委托他人代办?
职工离职后暂时未就业,期间能否继续提取公积金用于支付房租费用?
职工离职后暂时未就业,期间能否继续提取公积金用于支付房租费用?
定期进行的电梯安全检查与维护,主要能防范哪些可能导致运行异常的风险?
定期进行的电梯安全检查与维护,主要能防范哪些可能导致运行异常的风险?
连锁品牌的一家门店倒闭,其总部是否有责任承接消费者的预付款?
连锁品牌的一家门店倒闭,其总部是否有责任承接消费者的预付款?
最全经营贷款利率攻略,助企业找到最低利息贷款
最全经营贷款利率攻略,助企业找到最低利息贷款
建成后的高标准农田,后续的维护管护责任和资金由谁承担?
建成后的高标准农田,后续的维护管护责任和资金由谁承担?
从全球视角看,文字的统一与多样性在文化交流与融合中扮演着怎样的角色?
从全球视角看,文字的统一与多样性在文化交流与融合中扮演着怎样的角色?
在评价公共服务时,如何撰写具体、客观的评价内容以便于问题解决?
在评价公共服务时,如何撰写具体、客观的评价内容以便于问题解决?
企业税票贷主流还款方式详解,对比多款还款模式挑选适配周转方案
企业税票贷主流还款方式详解,对比多款还款模式挑选适配周转方案
中国共享单车的运营模式在海外市场推广时,进行了哪些本土化改良?
中国共享单车的运营模式在海外市场推广时,进行了哪些本土化改良?
从全职转为兼职或灵活就业,社保缴费基数应该如何衔接与重新计算?
从全职转为兼职或灵活就业,社保缴费基数应该如何衔接与重新计算?