当前位置: 首页 > 面试题库 >

XMLHttpRequest(Ajax)错误

韩嘉祯
2023-03-14
问题内容

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(),请先阅读如何使用,因为还有第三个可选参数用于指定是否发出异步请求,
默认为true
。这意味着您正在发出异步请求,并且需要先指定一个回调函数send()。这是MDN的示例

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文件。

您可能必须通过简化/缩小问题出处来进行调试。因此,我将从发出一个简单的同步请求开始,这样您就不必担心回调函数。因此,这是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文档/示例/教程。



 类似资料:
  • 问题内容: 我正在尝试使用POST方法编写XMLHttpRequest。我过去已经使用GET方法设法使用XMLHttpRequest,但是在POST方面却很挣扎。 这是我的代码: 它基本上调用PHP脚本,然后将一些信息添加到数据库中。 问题答案: 好吧,我已经设法对它进行了排序。 奇怪的原因虽然可能与沙箱安全性有关,但是我没有使用完整的URL地址,而是使用了文件的相对路径,现在可以使用了。 谢谢大

  • 问题内容: 我已经解决了这个问题几天,并在这个论坛上进行了接触,因为我觉得我已经筋疲力尽了。我在Drupal 7网站上托管了一个表单,需要将表单值提交到外部url。该表单通过jQuery.AJAX通过HTTPS协议使用POST请求 表格可以在Chrome,Firefox和Safari中正常运行 我在IE10 +控制台中收到以下错误(使用IE10 +时,ajax调用总是进入错误功能): SCRIPT

  • 本文向大家介绍Ajax核心XMLHttpRequest总结,包括了Ajax核心XMLHttpRequest总结的使用技巧和注意事项,需要的朋友参考一下 Ajax:即"Asynchronous JavaScript and XML"(异步JavaScript和XML),一门综合性的技术:运用JavaScript对象XMLHttpRequest进行异步数据交换;JavaScript操作DOM实现动态效

  • 本文向大家介绍AJAX XMLHttpRequest对象详解,包括了AJAX XMLHttpRequest对象详解的使用技巧和注意事项,需要的朋友参考一下 AJAX是一种创建交互式网页应用的网页开发技术,是异步Javascript和XML的集合。其核心是XMLHttpRequest对象,可以在不向服务器端提交整个页面的情况下,实现局部更新网页,它是AJAX的Web应用程序架构的一项关键技术。 基本

  • XMLHttpRequest 是 AJAX 的基础。 XMLHttpRequest 对象 所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。 XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 创建 XMLHttpRequest 对象 所有现代浏览器(IE7+、

  • 服务器响应 如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。 属性 描述 responseText 获得字符串形式的响应数据。 responseXML 获得 XML 形式的响应数据。 responseText 属性 如果来自服务器的响应并非 XML,请使用 responseText 属性。 responseText