【问题标题】:Error: "Access to restricted URI denied"错误:“访问受限 URI 被拒绝”
【发布时间】:2016-12-30 05:27:06
【问题描述】:

访问受限 URI 被拒绝”代码:“1012 [Break On This Error]

xhttp.send(null);

function getXML(xml_file) {
  
  if (window.XMLHttpRequest) {
    
    var xhttp = new XMLHttpRequest();  // Cretes a instantce of XMLHttpRequest object
  }
  else {
    
    var xhttp = new ActiveXObject("Microsoft.XMLHTTP");  // for IE 5/6
  }
  
  xhttp.open("GET",xml_file,false);  
  xhttp.send(null);  
  
   var xmlDoc = xhttp.responseXML; 
 
   return (xmlDoc);
}

我正在尝试使用 JavaScript 从 XML 文件中获取数据。我使用 Firebug 在 Firefox 上进行测试和调试。

上面的错误是我得到的。它在我以前用过的其他地方也有效,为什么在这里表现得很奇怪?

有人可以帮我解释为什么会这样吗?

更新:

http://jquery-howto.blogspot.com/2008/12/access-to-restricted-uri-denied-code.html

我发现这个链接解释了问题的原因。但我不明白给出的解决方案意味着什么,有人可以详细说明吗?

【问题讨论】:

  • 您尚未发布任何代码,因此很难说出可能的原因。您正在执行 ajax 的 URL 是什么,您使用 ajax 获取的 URL 是什么?
  • 就我个人而言,我会尝试在 StackOverflow 和可能的 Google 上搜索该错误消息。
  • 我还有另一个 javascript 调用相同的函数来做一些工作。这可能是原因吗?
  • @user749069 看帮助学习如何贴代码,不是<code>标签
  • 您遗漏了最重要的细节。什么是xml_file,页面的url是什么样的?

标签: javascript html xml firefox firebug


【解决方案1】:

另一个可能的原因是当您直接在文件系统上使用 .html 文件时。例如,如果您在浏览器中使用此 url 访问它:C:/Users/Someguy/Desktop/MyProject/index.html

如果必须发出 ajax 请求,则 ajax 请求将失败,因为对文件系统的 ajax 请求受到限制。要解决此问题,请设置一个将 localhost 指向 C:/Users/Someguy/Desktop/MyProject 的网络服务器并从 http://localhost/index.html 访问它

【讨论】:

    【解决方案2】:

    听起来你正在破坏same origin policy

    子域、不同的端口、不同的协议被认为是不同的域。

    【讨论】:

      【解决方案3】:

      尝试将 Access-Control-Allow-Origin:* 标头添加到为您提供 XML 的服务器端脚本。如果您不在 PHP 中执行此操作(您可以使用 header())并尝试读取原始 XML 文件,您可能必须通过添加 Header set Access-Control-Allow-Origin "*" 在 .htaccess 文件中设置标头。此外,您可能需要添加Access-Control-Allow-Headers:*

      我还建议在生产模式下替换 * 以禁止所有人读取您的数据,而是在此处添加您自己的 url。

      【讨论】:

      • >"我还建议在生产模式下替换 * 以禁止所有人读取您的数据,而是在此处添加您自己的 url。"请注意,这对于客户端来说完全是可选的,只有浏览器才会尊重这一点。它不会阻止任何人读取您的数据。
      【解决方案4】:

      没有代码是不可能的,但你可能会违反跨站点 ajax 限制:你不能向其他域发出 ajax 请求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-21
        • 2010-09-08
        • 2013-06-24
        • 2012-03-17
        • 1970-01-01
        • 1970-01-01
        • 2016-12-17
        • 2015-01-20
        相关资源
        最近更新 更多