在我的ajax调用中,responseXML返回null。任何人都可以帮助我在哪里做错了?我的代码是。我检查了我的代码。但是我找不到任何错误。
function generateTable()
{
//alert("generating table");
var xhr = new XMLHttpRequest();
xhr.open("get","data.xml",true);
//xhr.setRequestHeader('Content-Type', 'text/xml');
xhr.onreadystatechange=function()
{
if(xhr.readyState == 4)
{
var root = xhr.responseXML;
alert(root);
}
}
xhr.send("");
}
我的xml文件是......
<?xml version="1.0" encoding="UTF-8"?>
<data>
<temp_det>
<srl_no>1</srl_no>
<temperature>39</temperature>
<on_or_off>on</on_or_off>
<accuracy>87</accuracy>
</temp_det>
<temp_det>
<srl_no>2</srl_no>
<temperature>45</temperature>
<on_or_off>off</on_or_off>
<accuracy>67</accuracy>
</temp_det>
<temp_det>
<srl_no>3</srl_no>
<temperature>38</temperature>
<on_or_off>on</on_or_off>
<accuracy>78</accuracy>
</temp_det>
</data>
答案 0 :(得分:0)
它给出了这个错误。“无法加载文件:/// C:/xampp/htdocs/xml/data2.xml:仅支持协议方案的交叉原始请求:http,data,chrome,chrome-extension ,https
您收到此错误的原因是,由于安全原因,Google Chrome不允许您通过AJAX请求访问文件。所以你有两个选择。
首先,使用--allow-file-access-from-files
选项并按照here中的以下步骤通过命令提示符启动浏览器。 (假设您使用的是Windows机器)。
其次,将安装Web服务器。您的计算机上必须已有IIS。 (同样,假设您使用的是Windows机器。)通过此服务器请求文件。
您应该注意的是,Google Chrome会阻止此类请求。因此建议您跳过第一个选项并选择第二个选项。
答案 1 :(得分:0)
您只需要更改XML文件的第一行。 我遇到了同样的问题,然后我只是在https://www.w3schools.com/xml/中使用XML示例的第一行并将其更改为我的xml文件。