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

时间:2012-06-07 11:02:04

标签: javascript jquery ajax

我有以下内容:

 $.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID },
    success: function (data) {
        $('#CityID').html(data);
    },
    error: function (ajaxContext) {
        alert(ajaxContext.responseText)
    }
});

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

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

4 个答案:

答案 0 :(得分:2)

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

  1. jqXHR
  2. textStatus:描述发生错误类型的字符串
  3. errorThrown:可选的异常对象,如果发生的话
  4. 此外,它指出:

      

    第二个参数的可能值(除了null)是“timeout”,“error”,“abort”和“parsererror”。发生HTTP错误时,errorThrown会收到HTTP状态的文本部分,例如“未找到”或“内部服务器错误”。

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

答案 1 :(得分:1)

更新

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

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

JQuery Ajax - How to Detect Network Connection error when making Ajax call

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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