我正在尝试解决问题XMLHttpRequest
,但遇到了一个问题:
function x(url, callback) { //edited
xmlHttp.onreadystatechange = function() {
if ( xmlHttp.readyState == 4 && xmlHttp.status == 200 ) {
callback(xmlHttp.responseText;) //edited
} else {
document.getElementById('content').innerHTML = '<div class="error">Ups, an error ocurred! Server response: <span>'+xmlHttp.responseText+'</span></div>';
}
}
xmlHttp.open('GET', url, true);
xmlHttp.send(null);
}
function y()
{
var url = base_url + '?asa=test';
x(url, function (response) { //edited
console.log(response);
});
}
但我的问题是if readyState == 4
. 的输出console.log
始终是未定义的,永远不会进入if
, 只有else
,这是因为第一次if
执行时,readyState
其值为1
。
所以,任何解决这个问题的方法,因为它让我发疯,我已经尝试了我现在能想到的一切。
更新
代码的格式,这是我最后一次尝试的,因为在我将它分开之前,在变量和我试图解决这个问题的各种事情中
顺便说一句,一个console.log(xmlHttp.readyState)
insideonreadystatechange
的函数,会一一输出:1、2、3、4