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

有时success功能很好,有时不行.

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

问题是,AJAX请求会冻结挡路,直到完成.如果服务器停机一段时间,它将永远不会结束.

推荐答案

请阅读$.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参数,可以看到抛出了什么类型的错误.选项有"超时"、"错误"、"中止"和"解析器错误".

Javascript相关问答推荐

CSS背景过滤器忽略转换持续时间(ReactJS)

当没有固定间隔时,是否可以在d3.js中进行画笔捕捉?

详细更改参考价值:"

为什么在获取回调内设置状态(不会)会导致无限循环?

如何提取Cypress中文本

materialized - activeIndex返回-1

GrapeJS -如何保存和加载自定义页面

react—router v6:路由没有路径

如何使用JavaScript将文本插入空div

Chromium会将URL与JS一起传递到V8吗?

这个值总是返回未定义的-Reaction

Next.js服务器端组件请求,如何发送我的cookie token?

如何使用JS创建一个明暗功能按钮?

Vaadin定制组件-保持对javascrip变量的访问

按什么顺序接收`storage`事件?

FireBase FiRestore安全规则-嵌套对象的MapDiff

JavaScript将字符串数字转换为整数

本地损坏的Java脚本

ReferenceError:无法在初始化之前访问setData

如果对象中的字段等于某个值,则从数组列表中删除对象