XDomainRequest 上的访问被拒绝错误

Posted

技术标签:

【中文标题】XDomainRequest 上的访问被拒绝错误【英文标题】:Access is denied error on XDomainRequest 【发布时间】:2012-01-17 20:29:04 【问题描述】:

我正在尝试使用 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. 错误。

【问题讨论】:

9,我用开发者工具改成8了,结果还是一样 您发送的内容类型标头是什么? 是的,见第 4 点:blogs.msdn.com/b/ieinternals/archive/2010/05/13/… 如何将标头设置为 XDomainRequest 对象? 我想我遇到了问题(第 7 点)。 【参考方案1】:

我找到了这个问题的原因。如Point 7中所述:

请求必须针对与托管页面相同的方案

此限制意味着如果您的 AJAX 页面位于 http://example.com,那么您的目标 URL 也必须以 HTTP 开头。同样,如果您的 AJAX 页面位于 https://example.com,那么您的目标 URL 也必须以 HTTPS 开头。

【讨论】:

第 7 点是“请求必须针对与托管页面相同的方案”。我也在为同样的问题苦苦挣扎,从 http 页面调用 https 地址。感谢您的链接! 我明白了,但是有什么办法可以解决这个问题,并且可以从 http 站点访问 https:ajax。 这对我帮助很大!我花了几个小时试图弄清楚:)【参考方案2】:

看这个:

http://msdn.microsoft.com/en-us/library/cc288060(v=vs.85).aspx

它描述了服务器必须如何响应某个标头,Access-Control-Allow-Origin。

【讨论】:

嗯。所以我现在看到这个 URL 确实返回了值为“*”的标头。所以不是这样。

以上是关于XDomainRequest 上的访问被拒绝错误的主要内容,如果未能解决你的问题,请参考以下文章

防止 mysql_connect() 上的错误 - 访问被拒绝

centos linux上的dotnet restore错误:访问路径被拒绝

更改 cPanel 密码后,Drupal 站点上的访问被拒绝

Ubuntu 上的 Asp Net Core - 访问被拒绝

防止 IE 中出现“SCRIPT5:访问被拒绝”错误

Tomcat 7.0.42 上的 403 访问被拒绝