【问题标题】:jquery ajax: how to implement timeout when internet is not connectedjquery ajax:未连接互联网时如何实现超时
【发布时间】:2011-07-01 00:21:20
【问题描述】:

我正在尝试发出一个 ajax 请求,并且我想知道 Internet 是否未连接。所以,我在想,如果 ajax 请求出现超时错误,它可以以某种方式等同于没有互联网连接(我知道这是不正确的)。无论如何,这是我的代码:

$.ajax({
        url: 'http://example.net/getdata',
        dataType: 'json',
        data: 'product=all',
        timeout: 3000,
        success: function(data) {
            if (data.success == 'yes') {
              alert('I was successful');
            } else {
              alert('I failed');
            }
        },
        error: function(objRequest, errortype) {
            if (errortype == 'timeout') {
              alert('I timed out');
            }
        }
    });

我尝试在未连接互联网时发送请求,我认为我会在 3 秒后收到“超时”错误(因为我已将超时设置为 3000)。但我收到了“解析错误”。为什么会这样?

实现无互联网连接的正确方法是什么?

【问题讨论】:

    标签: jquery ajax timeout


    【解决方案1】:

    我不确定您为什么会收到“解析错误”,但请看这个小提琴:

    http://jsfiddle.net/pgWCg/

    JSFiddle 允许您发送数据参数以延迟测试超时,因此我将延迟设置为 3 秒,您的超时值设置为 2 秒,它确实会提醒“我超时”消息。

    您可以修改这两个值以确保延迟按预期工作。

    【讨论】:

    • 我正在尝试通过关闭我的互联网连接然后发出 ajax 请求来测试超时。这可能是获得parseerror的原因吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多