如果在特定时间后未返回 ajax 响应,如何显示错误

How to show error if ajax response is not returned after specfic time

如何确保 Ajax 响应由于某些错误而未发送?随着加载程序不断加载,我如何确保在特定时间后向用户显示出现问题的消息?这就是我正在尝试的。

  jQuery.ajax({

        type: "POST",
        url:url,
        data:{id:id},

        beforeSend:function() {
            //loader()
        },
        success: function(msg) {

           // sucess
        }
    });

jQuery.ajax({

        type: "POST",
        url:url,
        data:{id:id},

        beforeSend:function() {
            //loader()
        },
        success: function(msg) {

           // sucess
        },
        error: function (jqXHR, exception) {
            var msg = '';
            if (jqXHR.status === 0) {
                msg = 'Not connect.\n Verify Network.';
            } else if (jqXHR.status == 404) {
                msg = 'Requested page not found. [404]';
            } else if (jqXHR.status == 500) {
                msg = 'Internal Server Error [500].';
            } else if (exception === 'parsererror') {
                msg = 'Requested JSON parse failed.';
            } else if (exception === 'timeout') {
                msg = 'Time out error.';
            } else if (exception === 'abort') {
                msg = 'Ajax request aborted.';
            } else {
                msg = 'Uncaught Error.\n' + jqXHR.responseText;
            }
        },
        timeout: 5000 // sets timeout to 3 seconds
    });

您可以在错误回调中设置超时选项处理错误。

$.ajax({
url: "test.html",
error: function(){
    // will fire when timeout is reached
},
success: function(){
    //do something
},
timeout: 3000 // sets timeout to 3 seconds
});

试试这个代码

jQuery.ajax({
        type: "POST",
        url:url,
        data:{id:id,type:type},
        timeout:5000 //This will set timeout to 5 seconds
        beforeSend:function() {
             // loader
        },
        success: function(msg) {

          // Success

        },
        error: function(){
           // It will fire once timeout is reached
           // If you have any other error in the code
           // like wrong function name etc,keep it mind timeout 
           // function wouldn't work,and you will see the error without 
           // waiting for the timeout function.

        })};

顺便说一下,您可以获得@alok 提到的所有错误的列表。