我正在使用AJAX从外部xml文件中读取数据但是它给出错误“Invalid argument” 我正在使用IE 8
PFB代码:
var xhr;
xhr = new XMLHttpRequest();
xhr.open(“GET”,“C:/Users/abc/Desktop/Project/POC/ajax/Data.xml”,false);
xhr.onreadystatechange = function ()
{
if (xhr.readyState===4 && xhr.status===200)
{
var items = xhr.responseXML.getElementsByTagName('name');
var output = '<ul>';
for (var i=0; i<items.length; i++)
output += '<li>' + items[i].firstChild.nodeValue + '</li>';
output += '</ul>';
var div = document.getElementById('update');
div.innerHTML = output;
}
}
xhr.send();
以粗体显示的行显示错误。 任何的想法 ? 提前谢谢
答案 0 :(得分:0)
您应该使用url
而不是path
,例如更改:
xhr.open("GET","C:/Users/abc/Desktop/Project/POC/ajax/Data.xml", false);
,类似
xhr.open("GET","http://localhost/your_Project/POC/ajax/Data.xml", false);
答案 1 :(得分:0)
AJAX请求不适用于您需要在服务器上托管源以进行XMLHttpRequest调用的基于文件的URL
答案 2 :(得分:0)
您正在为服务器创建GET
for xml的请求。但是GET只能理解HTTP请求,所以它会抛出错误。
要解决此问题,您应该将xml文件添加到解决方案或Web部署目录中,然后使用浏览器地址发出请求,如果成功,则使用xhr对象进行创建。
答案 3 :(得分:0)
我认为您应该将xml文件放在Web服务器上,并将xhr目标指向该文件URL。 看起来像这样:
xhr.open("GET","http://localhost/yourpath/Data.xml", false);
基本的html文件,包含你的js代码,也应该放在web服务器上。
http://localhost/yourpath/basic.html
由于同源策略,您无法从文件系统向Web服务器URL发送ajax请求,但可以将请求从服务器A发送到服务器B,并且这两个服务器应该在同一个源上,两者都是
http://localhost
等。