zoukankan      html  css  js  c++  java
  • 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} `);
            }
        });
  • 相关阅读:
    HTTP——Web服务器、代理、缓存
    nginx配置文件详解2
    nginx配置文件详解
    shell笔记2
    django笔记
    python 发请求,urllib,urllib2
    nginx配置
    python os模块学习
    mac 终端命令小结
    mac常用命令笔记
  • 原文地址:https://www.cnblogs.com/chucklu/p/14211231.html
Copyright © 2011-2022 走看看