XMLHttpRequest, похоже, ничего не делает
Я безуспешно пытался загрузить двоичный файл с моего сервера с помощью jquery-ajax, от которого я наконец отказался. так что теперь я пытаюсь использовать вместо XMLHttpRequest. однако, я не могу даже заставить работать простой пример.
как ни странно, этот код, похоже, ничего не делает. я скопировал / вставил это из w3schools, и этот пример практически идентичен многим другим. это не работает для меня ни в Chrome, ни в FF:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
// Action to be performed when the document is read;
}
};
xhttp.open("GET", '/blah/blah/output.png', true);
xhttp.send();
мы входим в функцию onreadystatechange только один раз, в операторе open() с xhttp.readyState, равным единице, но не на шаге send(). я должен думать, что это, по крайней мере, вызовет какую-то ошибку, а не сделает ничего вообще.
Кроме того, в качестве эксперимента я намеренно выдал open() неверный URL - но опять же не получил ответа.
Кто-нибудь может сказать мне, что я могу делать неправильно?
большое спасибо вам.
1 ответ
Ваш код выглядит правильно для меня, что указывает на какую-то внешнюю причину.
Ваш код проходит до конца контекста выполнения? Браузеры будут удерживать сетевые запросы, пока движок не вернется к браузеру.
Например:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
// Action to be performed when the document is read;
}
};
xhttp.open("GET", '/blah/blah/output.png', true);
xhttp.send();
while(true){}
никогда не отправит звонок.