异步xml请求不会;t返回

asynchronous xml request doesn't return

本文关键字:返回 xml 请求 异步      更新时间:2023-09-26

所以我试图将同步xml请求重写为异步xml请求。我对此很陌生,所以如果这个错误真的很愚蠢,请原谅我。

无论如何,这就是我目前所拥有的。

var getEmployeeData = function(section, question, column){
    var xhr = new XMLHttpRequest();
    xhr.open("GET", Data.contextPath + "/main/?action=get-employee-list&section=" +section+ "&question=" +question+ "&column=" +column, true)
    xhr.onload = function (e) {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                if (employeeDataDone) {
                    if (xhr.responseText==("'r'n")) {
                        employeeList = null;
                        employeeInverseList = null;
                    } else {
                        employeeList = JSON.parse(xhr.responseText)[0];
                        employeeInverseList = JSON.parse(xhr.responseText)[1];
                    }
                }
            } else {
              console.error(xhr.statusText);
            }
          }
    }.bind(this);
    xhr.onerror = function (e) {
        console.error(xhr.statusText);
    };
    xhr.send(null);
}.bind(this);

我们非常感谢您的任何帮助,如果您需要我忽略的任何额外信息,只需询问即可。

谢谢!

您应该监听onreadystatechange事件,或者将具有该名称的函数附加到对象。以下应该可以解决您的问题:

var getEmployeeData = function(section, question, column){
    var xhr = new XMLHttpRequest();
    xhr.open("GET", Data.contextPath + "/main/?action=get-employee-list&section=" +section+ "&question=" +question+ "&column=" +column, true)
    xhr.onreadystatechange = function (e) {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                if (employeeDataDone) {
                    if (xhr.responseText==("'r'n")) {
                        employeeList = null;
                        employeeInverseList = null;
                    } else {
                        employeeList = JSON.parse(xhr.responseText)[0];
                        employeeInverseList = JSON.parse(xhr.responseText)[1];
                    }
                }
            } else {
              console.error(xhr.statusText);
            }
          }
    }.bind(this);
    xhr.onerror = function (e) {
        console.error(xhr.statusText);
    };
    xhr.send(null);
}.bind(this);

编辑:有关更多详细信息,我建议您查看XMLHttpRequest的维基百科条目。