0

我正在尝试使用以下代码加载外部 xml,但它不起作用

$( document ).load( "data.xml", function(  response, status, xhr ) {        
    console.log( xhr.status + " " + xhr.statusText );
  });

我有两个文件在同一个文件夹中data.xmljs

chrome中它返回404 error.

FF中它会重新调整0 [Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)"

我不明白为什么会这样?请对这个问题有所了解。

更新:$.get()我用下面提到的方法试了一下,但仍然没有成功。

同时我也尝试了使用纯js,如下所示

function loadXMLDoc(dname) {
    if (window.XMLHttpRequest)    {
      xhttp=new XMLHttpRequest();
      }
    else {
      xhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xhttp.open("GET",dname,false);
    xhttp.send();
    return xhttp.responseXML;
}
    xmlDoc=loadXMLDoc("data.xml");
    console.log(xmlDoc);

仍然面临错误。

FF 中的错误: NS_ERROR_DOM_BAD_URI:对受限 URI 的访问被拒绝 [中断此错误]

xhttp.send();

chrome 中的错误: XMLHttpRequest 无法加载 file:///C:/Users/admin/Desktop/public_html%281%29/public_html/data.xml。仅 HTTP 支持跨源请求。xml.js:13 Uncaught NetworkError:发生网络错误。

更新: 我发现这个问题很有用,但是有什么办法可以解决这个问题吗?

4

2 回答 2

1

也许这就是你正在寻找的......

$(document).ready(function(){
    $.ajax({
        url: 'data.xml',
        dataType: 'xml',
        success: function(response, status, xhr){
           console.log( xhr.status + " " + xhr.statusText );
        }
     });
});

更新

阅读这篇文章

于 2013-11-08T18:26:48.007 回答
1

经过长时间的斗争并在社区的帮助下,我解决了这个问题。

同源策略限制从一个源加载的文档或脚本如何与另一个源的资源交互。

意味着这对于系统文件是不可能的,所以在这个答案的帮助下,我使用 WAMPServer 来运行我的脚本,它就像一个魅力。

 $.get("http://localhost/public_html(1)/public_html/xml/data.xml",
                                     function(  response, status, xhr ) {        
        console.log( response );
    });

谢谢!

于 2013-11-08T19:20:04.887 回答