【发布时间】:2013-11-08 18:22:50
【问题描述】:
我正在尝试使用以下代码加载外部 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 被拒绝 [Break On This Error]
xhttp.send();
和
chrome 中的错误: XMLHttpRequest 无法加载 file:///C:/Users/admin/Desktop/public_html%281%29/public_html/data.xml。 仅 HTTP 支持跨源请求。 xml.js:13 未捕获 NetworkError:发生网络错误。
更新: 我发现这个question 很有用,但是有什么办法可以解决这个问题吗?
【问题讨论】:
-
$( document ).load( "data.xml"没有任何意义。 -
首先,您几乎可以肯定在这里使用
.get()而不是.load()。 -
@KevinB 那我需要使用任何元素吗?例如
$('#someid').load(..如果我的意思错了请纠正我? -
@Pointy 我尝试使用
.get(),但它没有记录控制台消息。 -
我希望您使用本地网络服务器进行测试。查看您的控制台错误输出,我看到您正在尝试从
file://协议获取文件,而该文件应该是根文件夹的相对路径,然后使用http://协议。
标签: javascript jquery xml