我正在尝试使用以下代码加载外部xml但它无法正常工作
$( document ).load( "data.xml", function( response, status, xhr ) {
console.log( xhr.status + " " + xhr.statusText );
});
我在同一个文件夹中有data.xml
和js
个文件。
在 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很有用,但是有什么方法可以解决这个问题吗?
答案 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 );
});
谢谢!