Capture 404 status with jQuery AJAX

Capture 404 status with jQuery AJAX

Replace your error function as follows...

error:function (xhr, ajaxOptions, thrownError){
    if(xhr.status==404) {
        alert(thrownError);
    }
}

 

how to handle 404 error in jquery.post

You can use a global error handler:

$(document).ajaxError(function(e, xhr, settings, exception) {

});



How can I catch jQuery AJAX errors?

try this:

$.ajax({
    url: remoteURL,
    type: 'GET',
    error: function (err) {
        console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
    }
}).always(function(jqXHR, textStatus) {
    if (textStatus != "success") {
        alert("Error: " + jqXHR.statusText);
    }
});

XHR Listener:

$.ajax({
    url: remoteURL,
    type: 'GET',
    xhr: function(){
        var xhr = new window.XMLHttpRequest();
        xhr.addEventListener("error", function(evt){
            alert("an error occured");
        }, false);
        xhr.addEventListener("abort", function(){
            alert("cancelled");
        }, false);

        return xhr;
    },
    error: function (err) {
        console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
    }
});

 

 

Ajax GET url on error jqxhr

Save your url in a variable. And you can use it in the error function. Obviously the url will be same as it was supplied in the url parameter of the ajax request

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   
    }
});

Another option can be this

$.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);
    }
});

FIDDLE

 

 回答2

I believe the simplest way would be:

this.url

The this should be bounded to the ajax object instance that has the url attribute.

 

 

复制代码
 $.ajax({
        url: getRootPath_web() + "//SelfRegistration/IsClientSelfRegistrationEnabled",
        type: "GET",
        dataType: 'json',
        headers: {"__RequestVerificationToken": token},
        success: function(res) {
            console.log(res);
            selfRegistrationIsPublished = res;
        },
       fail: function(jqXHR, textStatus) {
           swal('Error', jqXHR.message);
        },
        error: function (xhr, ajaxOptions, thrownError) {
            swal('Error', `Request ${this.url} failed, status = ${xhr.status}, statusText = ${xhr.statusText}, responseText = ${xhr.responseText} `);
        }
    });
复制代码

 

 

 

作者:Chuck Lu    GitHub    
posted @   ChuckLu  阅读(197)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示