У меня есть запрос JQuery ajax, который может возвращать статус ошибки и сообщения.
Для их обработки я использую этот код:
$.ajax("url", {
options: options
}).done(function(text, statusText, data) {
//Manage data
}).fail(function(data) {
//Manage fail
});
В дескрипторе отказа я хочу, в случае 500: internal server error
, открыть новую вкладку с текстом ответа (для целей отладки)
Я так делаю:
if (data.status === 500) {
var w = window.open("App error", "blank");
w.document.write(data.responseText);
}
И это работает!
За исключением одного момента: мой браузер загружает страницу, содержимое отображается (и поскольку это статический контент, все это не является реальной проблемой), но вкладка помечена как загрузка ... Загрузка ... Загрузка ...
Я использую Firefox 63.0 (64 бита).
Кто-нибудь знает, откуда это? На самом деле это не раздражает, это просто (забавное?) Поведение, которое я не понимаю.
Вот рабочий пример, на которой я получаю точно такое же поведение.
@JJJ Отладочное сообщение обрабатывается Twig и Slim, поэтому оно может быть огромным и содержать HTML. Я также могу отобразить ошибку на текущей странице. Мне просто любопытна эта бесконечная загрузка здесь.
Это связано с линейкой w.document.write
. Если закрыть документ, загрузчик закончит работу. Измените код на:
if (data.status === 500) {
var w = window.open("App error", "blank");
w.document.write(data.responseText);
w.document.close();
}
Источник:Открыть about: пустое окно в firefox
Меня не устраивает. Проблема в том, что он «продолжает загружаться», поэтому в некоторых браузерах невозможно загрузить файл, поскольку поток все еще открыт. Не можете понять это, какие-нибудь подсказки?
Не было бы намного проще для целей отладки вместо этого проверить ответ в консоли браузера?