我在用着XMLHttpRequest
在 JavaScript 中。但是,它给了我一个错误,我不知道我的问题是什么。
我必须解析 XML 文件并将其内容分配给网页 - 这是我的代码:
<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() https://developer.mozilla.org/en/DOM/XMLHttpRequest#open()因为还有第三个可选参数用于指定是否发出异步请求,默认为 true。这意味着您正在发出异步请求,并且需要在执行之前指定回调函数send()
。这是一个例子MDN https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Asynchronous_request:
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。因此,请确保您发出请求的 URL 正确。另外,请确保您的服务器能够为您提供服务quiz.xml
file.
您可能必须通过简化/缩小问题所在来进行调试。因此,我首先发出一个简单的同步请求,这样您就不必担心回调函数。这是来自 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 https://developer.mozilla.org/en/JavaScriptJavascript API 文档/示例/教程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)