我正在尝试在以下两个子域之间进行ajax get调用:
Target URL: https://qa.mydomain.com
Origin URL: https://myotherqa.mydomain.com
我收到以下错误:
XMLHttpRequest cannot load https://qa.mydomain.com/suggest?
q=foo. No 'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'https://myotherqa.mydomain.com' is therefore not allowed
access.
我正在使用$.get()
进行ajax调用
这两个网站都在同一个子域下,并且都是"https"。
我错过了什么?
谢谢
问题与网络安全(也称为同源策略)有关。
根据该政策,Web 浏览器允许包含在第一个 网页访问第二个网页中的数据,但前提是两个网页 页面具有相同的来源。原点定义为 URI 方案、主机名和端口号。- 更多信息在这里。
处理此问题的正确解决方案是允许服务器端的 CORS。另一种解决方案是将 JSONP 用于获取请求。
您可以在此站点上找到一些常见设置和更多信息:
http://enable-cors.org/
问题在于服务器配置,出于安全考虑,服务器不接受来自其他域的请求。端口可能不同,请在服务器级别配置中启用 cors。这将解决问题。