无法使用jQuery从外部文件加载xml

时间:2013-11-08 18:22:50

标签: javascript jquery xml

我正在尝试使用以下代码加载外部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未捕获   NetworkError:发生网络错误。

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

2 个答案:

答案 0 :(得分:1)

也许这就是你要找的......

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

<强>更新

阅读此post

答案 1 :(得分:1)

经过长时间的斗争,在社区的帮助下,我找到了问题。

  

同源策略限制文档或脚本的加载方式   一个来源可以与另一个来源的资源互动。

意味着系统文件无法实现这一点,因此在answer的帮助下,我使用了WAMPServer来运行我的脚本,它就像一个魅力。

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

谢谢!