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

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

本文关键字:Ajax 调用 信息 获取 连接 互联网      更新时间:2023-09-26

>我有以下内容:

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

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

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

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

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

此外,它还指出:

第二个参数(除了 null 之外)的可能值是"超时"、"错误"、"中止"和"解析器错误"。发生 HTTP 错误时,errorThrow 会收到 HTTP 状态的文本部分,例如"未找到"或"内部服务器错误"。

因此,您可能需要查看第二个和第三个参数的内容。

$.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/- 状态代码参数