Javascript onreadystatechange从未被调用

Javascript onreadystatechange从未被调用,javascript,ajax,xmlhttprequest,Javascript,Ajax,Xmlhttprequest,我已经创建了XHR,并且还正确地从服务器获得了响应。 但由于某种原因,回调没有发生。请帮忙 function uploadDr(){ var url = "UploadExcelServlet"; if (req != null) { try { req.open("GET", url, true); } catch (e) { alert(e); } req

我已经创建了XHR,并且还正确地从服务器获得了响应。 但由于某种原因,回调没有发生。请帮忙

function uploadDr(){
    var url = "UploadExcelServlet";     
    if (req != null) {
        try {
            req.open("GET", url, true);
        } catch (e) {
            alert(e);
        }
        req.onreadystatechange = callBk;
        req.setRequestHeader("Content-Type", "multipart/form-data");
        req.send();
    } else {
        alert("Null Request");
    }
}


function callBk(){
    if (req.readyState == 4){
        if (req.status == 200){
            alert(req.responseXml);
        } else {
            alert(req.statusText);
        }
    }
}
对于GET请求,您不需要设置“Content Type”头,因为数据总是在URL中传递

您可能需要按如下方式设置要发送的请求数据:

req.send(null);
然后在回调函数中测试readyState:

function callBk(){
    console.log(req.readyState); // don't stop the script by using alert!
    // other stuff
}

使舒尔的
readyState
不等于
0
XMLHttpRequest.UNSENT
)。

调用callBk()函数是否未被调用?或者它正在被调用,但(req.readyState==4)为false?@George它没有被调用。第一行时我收到了一个警报,但我仍然没有收到。@AbhinandanSahu:检查错误控制台以查看确切的错误消息。有一个重复的uploadDr()方法被调用(我讨厌处理别人编写的代码)。在理清了核心问题之后,我面临的一个问题是,我无法获得答案。我正在从服务器发送一个整数0或1,由于某种原因,由于我没有得到警报(),它被正确地打印在日志中。希望这是拼图的最后一块。谢谢大家在这里帮助我。我很感激。