У меня есть глобальный обработчик ajaxComplete
:ajaxComplete, XMLHttpRequest не определен
$('body').ajaxComplete(function (event, request, settings) {
if (request.getResponseHeader('REQUIRES_AUTH') === '1') {
alert("unauthorized");
};
});
Проблема в том, что request
всегда неопределенными, заполняется только event
.
Можете ли вы объяснить мне, почему?
Пример запроса Ajax:
$.ajax({
cache: false,
data: "GET",
url: url,
success: function (content) {
$('#modal').html(content);
$('#modal').modal();
}
});
UPDATE: Из API Документов (Благодаря Остин Mullins):
По JQuery 1.8, однако, .ajaxComplete() метод должен только прилагаться к документу.
У меня изменить свой код к этому:
$(document).ajaxComplete(function (event, request, settings) {
if (request.getResponseHeader('REQUIRES_AUTH') === '1') {
alert("unauthorized");
};
});
Но теперь я получаю ошибку:
TypeError: document.createDocumentFragment is not a function
safeFrag = document.createDocumentFragment(); (jquery-1.9.0.js (line 5800))
браузер Firefox 19.0.2
РЕШЕНИЕ: проблема была в версии JQuery 1.9.0. Я обновил до 1.9.1, и ошибка исчезла. Благодаря Воозу.
Из [API docs] (http://api.jquery.com/ajaxComplete/):> Примечание. Однако с jQuery 1.8 метод .ajaxComplete() должен быть присоединен только к документу. –
@AustinMullins: У меня есть изменения в документе, но теперь я получаю ошибку 'TypeError: document.createDocumentFragment не является функцией' – user348173
Как вы ее изменили? Он должен быть '$ (document) .ajaxComplete()'. –