我有一个全局 ajaxComplete
处理程序:
$('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();
}
});
更新:
来自 API 文档(感谢 Austin 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,错误消失了。感谢波阿斯。
最佳答案
根据您的编辑,您似乎正在使用 jQuery 1.9.0
。有几个AJAX-related bugfixes in jQuery 1.9.1
。尝试使用最新的 jQuery 版本。
关于jquery - ajaxComplete,XMLHttpRequest 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15377108/