无法理解如何使用ajax调用启用CORS

时间:2014-12-29 20:58:49

标签: javascript ajax cors

我无法理解如何在使用CORS将信息发送到位于另一个域的远程服务器时启用Ajax。我在Stackoverflow上阅读了很多关于它和许多其他问题的内容,但有些事情并没有加起来。我知道为了绕过浏览器的安全检查,我需要在我的代码中添加Access-Control-Allow-Origin: *标题,但究竟在哪里?我知道还有另一个选项可以将此标头添加为PHP文件中的简单标签,然后使用curls创建POST消息,但我不熟悉PHP,因为我使用的是JS。有人可以帮我理解应该怎么做? 重要的是,我无法配置或更改服务器设置,因此一切都必须在客户端完成。

到目前为止,这是我的代码。我设法通过使用Chrome插件获得此消息,但显然这不够好,因为我无法重新创建插件正在执行的操作。

$.ajax({
       type: "POST",
       url: "someURL",
       data: {name: "John", lastName : "Johnson", state : "NYC" },
       headers: {
       "Access-Control-Allow-Origin: *"
       }
       })
       .done(function( msg ) {
       console.log(msg);
});

2 个答案:

答案 0 :(得分:1)

不必这样做。浏览器非常智能,可以确定需要哪些标头。实际上,重点是:浏览器检测到跨站点脚本问题,并询问服务器是否可以继续。

您可能需要调整服务器端代码才能正确回复标题。

答案 1 :(得分:0)

Access-Control-Allow-Origin是一个响应标头。您提出请求的服务器必须包含它以授予您读取数据的JavaScript权限。

  

我无法配置或更改服务器设置,因此一切都必须在客户端完成。

您的JavaScript不允许自己从其他网站读取数据。

您需要使用代理来获取数据。