首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax获得错误jqxhr的url

Ajax获得错误jqxhr的url
EN

Stack Overflow用户
提问于 2013-09-12 11:36:23
回答 4查看 21K关注 0票数 20

我有一个ajax请求,我故意从服务器端代码中失败来触发错误处理事件。我想知道这里是否有可能得到它尝试的URL?我想获取该URL,并将其插入到超链接中,然后重试请求。

这个是可能的吗?

编辑我能够看到试图通过FireBug发出的URL请求,并通过console.dir()检查jqxhr对象,并且似乎找不到任何东西来帮助我识别它试图调用的URL。理想情况下,不想存储全局变量,而是希望从参数中获得这一点。

提前谢谢你,O。

代码语言:javascript
复制
$.ajax({
    type: 'get',
    url: 'somewhere/foo',
    context: this,
    success: this.mySuccess,
    error: this.myError,
    cache: false
});

myError = function (jqXhr, textStatus) {
    alert(jqXhr.url); //Get url of failed request and inject it into hyper link?
};
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-12 11:45:50

url保存在变量中。您可以在错误函数中使用它。显然,url将与在ajax请求的url参数中提供的url相同。

代码语言:javascript
复制
var url = 'somewhere/foo';

$.ajax({
    type: 'get',
    url: url,
    context: this,
    success: this.mySuccess,
    error: this.myError,
    cache: false,
    error: function(jqXHR, exception) {
       //use url variable here   
    }
});

另一种选择可以是

代码语言:javascript
复制
$.ajax({
    type: 'get',
    url: 'https://google.com',
    context: this,
    success: this.mySuccess,
    error: this.myError,
    cache: false,
    beforeSend: function(jqXHR, settings) {
        jqXHR.url = settings.url;
    },
    error: function(jqXHR, exception) {
        alert(jqXHR.url);
    }
});

小提琴

票数 29
EN

Stack Overflow用户

发布于 2017-09-27 00:02:29

我相信最简单的方法是:

代码语言:javascript
复制
this.url

this应该绑定到具有url属性的ajax设置对象

票数 15
EN

Stack Overflow用户

发布于 2021-12-25 14:12:58

加@KhawerZeshan回答。最好在全局设置beforeAjax:

代码语言:javascript
复制
$.ajaxSetup({
    beforeSend: function(jqXHR, settings) {
        jqXHR.url = settings.url;
    }
});

这样,如果您在异步中使用它,请等待:

代码语言:javascript
复制
try {
   await $.get('http://example.com');
} catch(e) {
   console.log(e.url);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18763182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档