首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >设置ajax超时(jQuery)

设置ajax超时(jQuery)
EN

Stack Overflow用户
提问于 2011-03-08 05:39:40
回答 5查看 467.8K关注 0票数 211
$.ajax({
    url: "test.html",
    error: function(){
        //do something
    },
    success: function(){
        //do something
    }
});

success函数有时运行良好,有时效果不佳。

如何设置此ajax请求的超时时间?例如,3秒,如果超时,则显示错误。

问题是,ajax请求会冻结该块,直到完成。如果服务器停机一段时间,它将永远不会结束。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-08 05:43:39

请阅读$.ajax documentation,这是一个涵盖的主题。

$.ajax({
    url: "test.html",
    error: function(){
        // will fire when timeout is reached
    },
    success: function(){
        //do something
    },
    timeout: 3000 // sets timeout to 3 seconds
});

您可以通过访问error: function(jqXHR, textStatus, errorThrown)选项的textStatus参数来查看抛出了什么类型的错误。选项包括"timeout“、"error”、"abort“和"parsererror”。

票数 365
EN

Stack Overflow用户

发布于 2011-03-08 05:42:50

您可以在ajax选项中使用timeout设置,如下所示:

$.ajax({
    url: "test.html",
    timeout: 3000,
    error: function(){
        //do something
    },
    success: function(){
        //do something
    }
});

在这里阅读关于ajax选项的所有内容:http://api.jquery.com/jQuery.ajax/

请记住,当发生超时时,触发的是error处理程序,而不是success处理程序:)

票数 24
EN

Stack Overflow用户

发布于 2012-10-18 15:31:08

使用功能齐全的.ajax jQuery函数。请与https://stackoverflow.com/a/3543713/1689451进行比较以获取示例。

在没有测试的情况下,只需将您的代码与引用的SO问题合并:

target = $(this).attr('data-target');

$.ajax({
    url: $(this).attr('href'),
    type: "GET",
    timeout: 2000,
    success: function(response) { $(target).modal({
        show: true
    }); },
    error: function(x, t, m) {
        if(t==="timeout") {
            alert("got timeout");
        } else {
            alert(t);
        }
    }
});​
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5225597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档