使用AJAX从xml获取数据时出错

时间:2013-05-15 09:36:52

标签: javascript xml ajax

我正在使用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(); 

以粗体显示的行显示错误。 任何的想法 ? 提前谢谢

4 个答案:

答案 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

等。