6

我有以下内容:

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

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

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

4

4 回答 4

2

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

  1. jqXHR
  2. textStatus: 描述发生的错误类型的字符串
  3. errorThrown: 一个可选的异常对象,如果发生了

此外,它指出:

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

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

于 2012-06-07T11:07:33.083 回答
1

更新。

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

$.ajax 有据可查,你应该在那里检查选项,可能会发现一些有用的东西。

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

于 2012-06-07T11:03:56.143 回答
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)
    }
});
于 2012-06-07T11:07:22.583 回答
0

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

于 2012-06-07T11:07:56.500 回答