我正在尝试使用Microsoft XDomainRequest发送跨域请求。这是代码
... if ($.browser.msie && window.XDomainRequest) { // Use Microsoft XDR var xdr = new XDomainRequest(); xdr.open("POST", "http://graph.facebook.com/1524623057/"); xdr.send(); } ....
它会xdr.open(...)
行上给出SCRIPT5: Access is denied.
错误。
我找到了这个问题的原因。如第7点所述:
请求必须针对与托管页面相同的方案
此限制意味着,如果您的 AJAX 页面位于
http://example.com
,那么您的目标 URL 也必须以 HTTP 开头。同样,如果您的 AJAX 页面位于https://example.com
,那么您的目标 URL 也必须以 HTTPS 开头。
看到这个:
http://msdn.microsoft.com/en-us/library/cc288060(v=vs.85(.aspx
它描述了服务器必须如何使用某个标头(访问控制允许源(进行响应。