JQuery statusCode 404 – 如何获取jqXhr url?

我有一个 jquery

ajax statuscode函数来处理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;

                        }
                    }
            }
}
AJAX事件处理程序的默认上下文(即处理程序中与此绑定的对象)确实暴露了url属性,因为它是$.ajaxSettings和传递给 $.ajax()

的参数之间的混合.

但是,在您的情况下,您通过在上下文选项中传递$(this)来覆盖该默认上下文.此外,在ajaxOptions中执行此操作意味着使用当前URL扩展该对象并不容易.

我建议在使用 data() 或类似功能之前,将URL与您的插件在AJAX调用之前增强的元素相关联.

翻译自:https://stackoverflow.com/questions/11467201/jquery-statuscode-404-how-to-get-jqxhr-url

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章