我XMLHttpRequest在JavaScript中使用。但是,这给了我一个错误,我不知道我的问题是什么。 我必须解析一个XML文件并将其内容分配给网页-这是我的代码:
XMLHttpRequest
<script = "text/javascript"> window.onload = onPageLoad(); var questionNum = 0; function onPageLoad(questionNum) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET","quiz.xml"); try { xmlhttp.send(null); // Here a xmlhttprequestexception number 101 is thrown } catch(err) { document.getElementById("body").innerHTML += "\nXMLHttprequest error: " + err.description; // This prints "XMLHttprequest error: undefined" in the body. } xmlDoc = xmlhttp.responseXML; parser = new DOMParser(); // This code is untested as it does not run this far. } </script>
我的XML文件在同一目录中。
<question> <query>what is 2+2?</query> <option>4</option> <option>5</option> <option>3</option> <answer>4</answer> </question>
仅供参考,我通常使用C#或Java进行编程,并且我在Google Chrome上运行我的网站。
因此,这里可能有些错误。
首先XMLHttpRequest.open(),请先阅读如何使用,因为还有第三个可选参数用于指定是否发出异步请求, 默认为true 。这意味着您正在发出异步请求,并且需要先指定一个回调函数send()。这是MDN的示例:
XMLHttpRequest.open()
send()
var oXHR = new XMLHttpRequest(); oXHR.open("GET", "http://www.mozilla.org/", true); oXHR.onreadystatechange = function (oEvent) { if (oXHR.readyState === 4) { if (oXHR.status === 200) { console.log(oXHR.responseText) } else { console.log("Error", oXHR.statusText); } } }; oXHR.send(null);
其次,由于出现101错误,因此您可能使用了错误的URL。因此,请确保您发出请求的网址正确无误。另外,请确保您的服务器能够提供quiz.xml文件。
quiz.xml
您可能必须通过简化/缩小问题出处来进行调试。因此,我将从发出一个简单的同步请求开始,这样您就不必担心回调函数。因此,这是MDN发出同步请求的另一个示例:
var request = new XMLHttpRequest(); request.open('GET', 'file:///home/user/file.json', false); request.send(null); if (request.status == 0) console.log(request.responseText);
另外,如果您刚开始使用Javascript,则可以参考MDN for Javascript API文档/示例/教程。