Я пытался выяснить, как это сделать.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, но пока нету понял, почему его вести себя таким образом (Im новое Ajax).
Так возникает проблема, когда у меня есть request.open('GET','data.txt');
, что заставляет страницу оставаться в режиме загрузки, а console.log ничего не показывает.
я Google вокруг и нашел в StackOverflow этого решения request.onreadystatechange=handleStateChange;
, который, кажется, решение данной проблемы. к сожалению, он переопределяет request.onreadystatechange = function(){}
. Консоль работает, а содержимое data.txt не будет отображаться в Интернете.
Если я прокомментирую это, содержимое отображается в Интернете, но страница снова загружается.
Я понял, что это что-то связано с readyState, и что к тому времени, когда он достиг 4, responseText пуст. Но как я могу получить его, чтобы показать содержимое и console.log?
Заранее спасибо за ваше время :)
@FrebinFrancis действительно, почему это хорошо, и это XMLHttpRequest плохо? по другим причинам, что синтаксический сахар. – Jai
@Metalbreath, зачем вам это нужно: 'handleStateChange' вообще. – Jai
видно, что при использовании помощников Ajax вы получите большой контроль над HTTP-HTTP-запросами, потому что они уже сделали это для вас. –