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

Error in getting data from xml using AJAX

本文关键字:数据 出错 获取 xml AJAX 使用      更新时间:2023-09-26

我正在使用AJAX从外部xml文件读取数据,但它给出错误"无效参数"我正在使用IE 8

PFB代码:

var xhr;
 xhr = new XMLHttpRequest();      

xhr.open("得到","C:/用户/abc/桌面/项目/POC/ajax/Data.xml",假),

 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(); 

黑体行给出错误。知道吗?提前感谢

您应该使用url而不是path,如change:

xhr.open("GET","C:/Users/abc/Desktop/Project/POC/ajax/Data.xml", false);

to,比如

xhr.open("GET","http://localhost/your_Project/POC/ajax/Data.xml", false);

AJAX请求对基于文件的url不起作用,您需要将源托管在服务器上以进行XMLHttpRequest调用

您正在创建请求服务器的GET为xml。但是GET只理解HTTP请求,所以会抛出错误。

要解决这个问题,您应该将xml文件添加到解决方案或web部署目录,然后使用浏览器地址发出请求,如果成功,则使用xhr对象发出请求。

我认为您应该将xml文件放在web服务器上,并将xhr目标指向该文件url。它看起来像这样:

xhr.open("GET","http://localhost/yourpath/Data.xml", false);

包含js代码的基本html文件也应该放在web服务器上。

http://localhost/yourpath/basic.html

由于同源策略,您不能从文件系统向web服务器url发送ajax请求,但可以将请求从服务器a发送到服务器B,并且两个服务器应该来自同一源,都是

http://localhost

等。