我有一个jquery ajax状态代码函数来处理404 ...另一个Stack Overflow应答表明在success方法中,this.url给出了请求的url ...但是,这似乎不是我的statusCode处理程序的情况。有任何想法吗?我在文档中没有看到如何获取请求的URL。
我的ajax选项对象看起来大致如此(在修剪与此问题无关的代码时可能错过了大括号)
;(function($) {
var defaultSettings = {
// ... other plugin specific settings
ajaxOptions:
{
cache:false,
context:$(this),
statusCode: {
404:function(xhr) {
// this line... this.url is always undefined (so is xhr.url)
$('#body').append('<div class="errordisplay">Content not found' + (this.url?': ' + this.url:'') + '</div>');
// ... do other stuff
return false;
}
}
}
}
答案 0 :(得分:31)
您可以修改请求&amp;使用以下代码发送之前设置对象:
$.ajaxSetup({
beforeSend: function(jqXHR, settings) {
jqXHR.url = settings.url;
}
});
然后访问xhr.url
回调中的statusCode
。它应该工作。
答案 1 :(得分:9)