Javascript Ajax readyState始终返回0

Javascript Ajax readyState始终返回0,javascript,ajax,Javascript,Ajax,这段Ajax代码有问题,每次访问“readyState”时都返回0。我还不知道问题的根源是什么,如有任何帮助,将不胜感激: var xhr = null; function performAjax(inputUrl){ // instantiate XMLHttpRequest object try{ xhr = new XMLHttpRequest(); alert("XMLHttpRequest"); } catch(e){

这段Ajax代码有问题,每次访问“readyState”时都返回0。我还不知道问题的根源是什么,如有任何帮助,将不胜感激:

var xhr = null;
function performAjax(inputUrl){

    // instantiate XMLHttpRequest object
    try{
        xhr = new XMLHttpRequest();
        alert("XMLHttpRequest");
    }
    catch(e){
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }

    // handle old browsers
    if( xhr == null ) {
        alert("Ajax not supported by your browser");
        return;
    }

    // get the URL
    var url = inputUrl;
    alert(inputUrl);
    // get Ajax answer
    xhr.onreadystatechange = handler();
    //alert(xhr.readyState);
    xhr.open("POST", url, true);
    xhr.send(null);
}

function handler() {

    alert("Handler: " + xhr.readyState + " Status: " + xhr.status);
    // handle only loaded requests
    if(xhr.readyState == 4) {   // state 4: that data has been received
        alert("here");
        if(xhr.status == 200) { 
            alert(xhr.reponseText);
        }
        else alert("Error with Ajax");
    }
}

您未正确分配处理程序函数:

xhr.onreadystatechange = handler; // <--- THERE SHOULD BE NO PARENTHESES
xhr.onreadystatechange=handler;/:)知道了!非常感谢@塞巴斯蒂安:不,不,它不应该有括号;括号就是问题所在。