微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax 跨域 post json数据

AJAX是一种常用的异步数据交换技术,它可以通过XMLHttpRequest对象与服务器进行数据交互。然而,由于浏览器的安全策略,我们不能直接跨域向其他域名下的服务器发起AJAX请求。在这种情况下,我们需要了解并使用CORS(跨域资源共享)或JSONP(JSON with padding)等方案来解决这一问题。

ajax 跨域 post json数据

这里我们介绍一种使用AJAX和JSON数据进行跨域POST请求的方法

// 跨域POST请求
function postJson(url,data,callback) {
    var xhr = new XMLHttpRequest();
    xhr.open('POST',url,true);
    xhr.setRequestHeader('Content-Type','application/json;charset=UTF-8');
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            callback(xhr.responseText);
        }
    };
    xhr.send(JSON.stringify(data));
}

// 使用示例
var url = 'http://www.example.com/api';
var data = {name: 'John',age: 18};
postJson(url,function(response) {
    console.log(response);
});

在上述代码中,我们首先定义了一个名为postJson的函数,它可以接收三个参数:请求的URL地址、要发送的JSON数据和回调函数。在该函数内部,我们通过XMLHttpRequest对象创建一个POST请求,并设置请求头的Content-Type属性为application/json;charset=UTF-8,以确保服务器能够正确处理我们发送的JSON数据。

随后,我们监听了XMLHttpRequest对象的readystatechange事件,并在状态码为4(即请求已完成)且响应状态码为200(即请求成功)时,调用了传入的回调函数,将服务器返回的响应内容作为参数传递给它。

最后,我们提供了一个使用示例,调用了postJson函数,并传入了一个URL地址以及一个包含姓名和年龄的JSON数据对象,同时指定了一个回调函数,用于处理服务器返回的响应结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐