错误:";访问受限URI被拒绝"

Error: "Access to restricted URI denied"

本文关键字:quot URI 拒绝 访问 错误      更新时间:2023-09-26

对受限URI的访问被拒绝";代码:";1012[此错误中断]

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

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

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

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

听起来你违反了同源策略。

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

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

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

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