我一直在试图弄清楚如何使这项工作。
var request;
if(window.XMLHttpRequest){
request= new XMLHttpRequest();
}else{
request = new ActiveXObject("Microsoft.XMLHTTP");
}
var handleStateChange = function () {
switch (request.readyState) {
case 0 : // UNINITIALIZED
case 1 : // LOADING
case 2 : // LOADED
case 3 : // INTERACTIVE
break;
case 4 : // COMPLETED
break;
default: alert("error");
}
}
/*request.onreadystatechange=handleStateChange;*/
request.onreadystatechange = function(){
if((request.status === 200) && (request.readyState === 4)){
console.log(request);
document.writeln(request.responseText);
}
}
request.open('GET','data.txt');
request.send();
我在stackoverflow中发现了类似的问题,但是我还没有弄清楚为什么它会这样(我是Ajax的新手)。
所以问题是,当我让request.open('GET','data.txt');
页面保持在加载模式并且console.log 没有显示任何内容时。
我四处搜索并在stackoverflow中找到了这个解决方案request.onreadystatechange=handleStateChange;
这似乎正在解决问题。不幸的是,它覆盖了request.onreadystatechange = function(){}
. 控制台工作,data.txt 内容不会显示在网络上。
如果我将其注释掉,内容会显示在网络上,但页面会再次加载。
我认为它与 readyState 有关,并且当它达到 4 时,responseText 为空。但是我怎样才能让它显示内容和console.log?
提前感谢您的时间:)