AJAX跨域请求到公共API



我正试图通过AJAX调用设置POST,以注册网页中的一些基本数据。这应该是一个公共web服务,因此可以通过包含JS脚本从任何域发送请求。

然而,当执行请求时,我得到了一个错误:

请求的上不存在"Access Control Allow Origin"标头资源因此,不允许访问来源"xxxxxx"。响应的HTTP状态代码为422。

服务器响应设置如下:

response.headers['Access-Control-Allow-Origin'] = '*'
    response.headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS'
    response.headers['Access-Control-Request-Method'] = '*'
    response.headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization'

这是JS请求:

var params = "f="+_.open+"&t="+_.t0;
xmlhttp.open("POST",TRACKURL,true);
xmlhttp.send(params);

我想请求中缺少了什么,但我找不到如何修复它。

如果你有想法,我很乐意听到。

thnaks

如果这能帮助其他人的话,我终于找到了我的问题的答案:实际上浏览器在POST请求之前发送了一个OPTIONS请求,所以为了创建跨域AJAX请求,你需要在POST响应和OPTIONS响应中都设置头。这可以在您的应用程序或web服务器配置中完成。

您需要在客户端上使用XMLHttpRequest2或XDomainRequest(IE)对象。

相关内容

  • 没有找到相关文章

最新更新