CORS ajax请求澄清

时间:2015-05-05 23:43:49

标签: javascript jquery ajax cors

所以我在云服务上部署了一个API。出于测试目的,我使用各种HTTP客户端,例如PostmanPawRestClient来向我的API发送请求,它们都可以正常工作。但是当我使用jQueryreqwset或其他任何内容从浏览器发送AJAX请求时,我收到以下错误:

  

XMLHttpRequest无法加载   {https://url/to/my/api/on/google-app-engine}。没有   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost:8000'因此是不允许的   访问

那么为什么HTTP客户端可以运行但浏览器会抛出错误?如果我在服务器上启用CORS,有任何风险吗?

1 个答案:

答案 0 :(得分:3)

这是因为网络浏览器的“同源”政策。这可以防止一个网站上的脚本代表您在另一个网站上发出请求。

只要您信任允许的客户端,启用CORS就是安全的,如果客户端位于localhost,则可能不是这种情况(因为您通常无法控制localhost)。

特殊情况:如果客户端无法在服务器域上执行更改,那么通常可以安全地启用CORS。