关于javascript:当互联网连接丢失时,如何从Ajax呼叫中获取信息

How can I get information back from an Ajax call when internet connectivity is lost

我有以下内容:

1
2
3
4
5
6
7
8
9
10
 $.ajax({ cache: false,
    url:"/Admin/Contents/GetData",
    data: { accountID: AccountID },
    success: function (data) {
        $('#CityID').html(data);
    },
    error: function (ajaxContext) {
        alert(ajaxContext.responseText)
    }
});

当我失去与互联网的连接时,会调用错误,但我在responseText中看不到任何内容。

有没有办法可以根据返回的ajaxContent中的状态信息找出不同类型的错误? 我真的希望能够发出一条消息说"互联网连接丢失",如果还有其他问题则会发出另一条消息。


根据jQuery文档,错误函数接收三个参数:

  • jqXHR
  • textStatus:描述发生的错误类型的字符串
  • errorThrown:可选的异常对象(如果发生)
  • 此外,它指出:

    Possible values for the second argument (besides null) are"timeout","error","abort", and"parsererror". When an HTTP error occurs, errorThrown receives the textual portion of the HTTP status, such as"Not Found" or"Internal Server Error."

    所以你可能想看看第二个adn第三个参数的内容。


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $.ajax({ cache: false,
        url:"/Admin/Contents/GetData",
        data: { accountID: AccountID },
        success: function (data) {
            $('#CityID').html(data);
        },
        error: function (ajaxContext) {
            if(ajaxContext.status=="404")
             {
              //write your not found handler code here
             }
            else
            alert(ajaxContext.status)
        }
    });


    更新。

    你应该只添加:timeout:,在$ .ajax({})内的某处。 此外,cache:false,在某些情况下可能会有所帮助。

    $ .ajax有详细记录,您应该检查那里的选项,可能会找到有用的东西。

    JQuery Ajax - 如何在进行Ajax调用时检测网络连接错误


    如果你的意思是不同类型的响应结果就在这里 - http://api.jquery.com/jQuery.ajax/ - statusCode参数