首页 > 解决方案 > 非常简单的 XMLHttpRequest 在我的机器上不工作,但在 W3C Tryit 编辑器中工作

问题描述

我有这个从 XML 文件中获取信息的脚本。它在 W3schools Tryit Editor 中运行良好,但当我在我的电脑上本地运行时却不行。(在 W3 编辑器上运行时,您需要将 questions.xml 更改为 books.xml,将 qtext 更改为 title。)

我从 w3schools 复制了 books.xml 以测试我的 .xml 文件是否有问题,但该脚本在本地也不能与 books.xml 一起使用。

我发现人们有类似的问题,但这总是因为他们引用了不同域中的东西,我知道这不应该工作,但我的问题不应该与此有任何关系。我已经尝试进一步搜索,但很难让谷歌找到任何接近搜索词的内容。

这是代码:

<p id="xmltesti">asd</p>

<script>
var xhttp = new XMLHttpRequest(); //Create variable for XMLHttpRequest
xhttp.onreadystatechange = function() { //When readyState property changes, run function
    if (this.readyState == 4 && this.status == 200) { //If everything is OK
        getText(this); //Run function GetData ("this" refers to the parent object)
        console.log("Everything OK!");
    } else {
        console.log("Problems occurred!");
        console.log(xhttp.status);
    }
};
xhttp.open("GET", "questions.xml", true);
xhttp.send();

function getText(xml) {
    var xmlDoc = xml.responseXML;
    document.getElementById("xmltesti").innerHTML =
    xmlDoc.getElementsByTagName("qtext")[0].childNodes[0].nodeValue;
}
</script>

浏览器控制台看起来像这样(我也想知道为什么它会打印两次):

Problems occurred!  
0  

Problems occurred!  
0

编辑: 我将文件上传到我的网络服务器,它现在正在工作。问题部分解决。但是在我的本地机器上测试它比不断地将文件上传到服务器更容易。而且我还想知道为什么当我在本地机器上运行它时它不想上传。

标签: javascripthtmlcssajaxxml

解决方案


推荐阅读