jquery ajax:如何在未连接互联网时实现超时

时间:2011-02-21 02:53:17

标签: jquery ajax timeout

我正在尝试制作一个ajax请求,我想知道互联网没有连接。所以我在想如果ajax请求发出超时错误,它可能在某种程度上等同于没有互联网连接(我知道这是不正确的)。无论如何,这是我的代码......

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

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

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

1 个答案:

答案 0 :(得分:3)

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

http://jsfiddle.net/pgWCg/

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

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