我的域名 () 上有一个网页ecmazing.com
,我希望能够向此 URL 发送 AJAX 请求:
http://hacheck.tel.fer.hr/xml.pl
它是一个位于不同域的 Perl 脚本(它返回一个XML 响应)。
“同源策略”不允许我的域中的网页进行 Ajax 通信。
现在,我听说了 CORS,我认为它可以解决我的问题。如果我理解正确的话,域管理员hacheck.tel.fer.hr
必须配置 Web 服务器,以便ecmazing.com
允许来自我的域 () 的 Ajax 请求。
您能告诉我管理员具体需要执行哪些操作吗?我会联系他,所以我想告诉他具体信息……
CORS 规范在这里:http://www.w3.org/TR/cors/
关于 CORS 的信息在这里:http://www.w3.org/wiki/CORS_Enabled
答案1
根据您发送的链接,它默认已启用,并且只需要更改 .htaccess 文件(假设它是 apache):
要显示标题,您可以在、和部分内或 .htaccess 文件内添加<Directory>
以下<Location>
行<Files>
。
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
我可以说,作为管理员,你最好做好充分的准备来解释为什么这不能在代码中而不是在服务器上完成,以及为什么我应该允许你这样做。
答案2
我们维持启用 cors.org回答这类问题。如果你想分享新的配置方法,请提出一个问题。
答案3
您可能需要考虑跨域 JSONP。从维基百科: “‘带填充的 JSON’ 是对基本 JSON 数据格式的补充,这种使用模式允许页面从不同域中的服务器请求数据。作为此问题的解决方案,JSONP 是较新的跨源资源共享方法的替代方案。”
我已经开始将它用于几个远程 API,没有任何问题,这很棒:)