我一直在試圖弄清楚如何使這項工作。Ajax將網站保存在加載中
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沒有顯示任何東西。
我谷歌了一圈,發現在計算器這個解決方案request.onreadystatechange=handleStateChange;
這似乎是解決這個問題。不幸的是它覆蓋了request.onreadystatechange = function(){}
。控制檯工作和data.txt內容不會顯示在網絡上。
如果我將它評論出來,內容會顯示在網絡上,但頁面會一直加載。
我認爲它與readyState有關,並且在達到4時responseText爲空。但我怎樣才能讓它顯示內容和console.log?
預先感謝您的寶貴時間:)
@FrebinFrancis真的,爲什麼是好的,這XMLHttpRequest是壞?任何其他語法糖的原因。 – Jai
@Metalbreath爲什麼你需要這個:'handleStateChange'。 – Jai
看到使用Ajax助手時,您將獲得對XML http請求的很多控制權,因爲他們已經爲您完成了它。 –