Javascript 当x时间之后没有响应时,如何取消ajax请求或第三方js请求w/abort()
好奇您的一些解决方案是什么,优雅地处理block js调用/ajax调用,这些调用需要花费很长时间才能到达第三方站点获取数据/信息 最近,我遇到了一些脚本/ajax请求,在这些请求中,服务器要么关闭,要么没有响应,实际上会阻塞我的页面。它们应该是异步的 所以,我想在x时间后中止通话Javascript 当x时间之后没有响应时,如何取消ajax请求或第三方js请求w/abort(),javascript,jquery,ajax,jquery-deferred,Javascript,Jquery,Ajax,Jquery Deferred,好奇您的一些解决方案是什么,优雅地处理block js调用/ajax调用,这些调用需要花费很长时间才能到达第三方站点获取数据/信息 最近,我遇到了一些脚本/ajax请求,在这些请求中,服务器要么关闭,要么没有响应,实际上会阻塞我的页面。它们应该是异步的 所以,我想在x时间后中止通话 var request = $.ajax({ type: 'POST', url: 'someurl', success: function(result){} }); 如果需要的时间太长,
var request = $.ajax({
type: 'POST',
url: 'someurl',
success: function(result){}
});
如果需要的时间太长,则使用:request.abort()
但我想我可以在这里使用延迟/承诺,如果我的承诺在1000毫秒内没有回来,我可以使用超时功能和调用中止
你的想法
我的错误在于没有引用ajax请求的超时属性。我不想将abort()封装在setTimeout中,但我需要的是jQuery ajax api w/timeout。我应该看看这个。谢谢大家。一种方法可以使用
一种方法是使用
可能的副本。jqueryajax有一个可选的超时选项,可以以毫秒为单位传递。通过向错误选项传递回调函数,可以在AJAX请求超时时处理逻辑,如下所示:
error: function(x, t, m){
//process error here
}
可能的副本。jqueryajax有一个可选的超时选项,可以以毫秒为单位传递。通过向错误选项传递回调函数,可以在AJAX请求超时时处理逻辑,如下所示:
error: function(x, t, m){
//process error here
}
选中超时选项:
选中超时选项:
如何将
$.ajax()
上的timeout
属性设置为1000并让jQuery处理它?然后检查timeout如何将$.ajax()
上的timeout
属性设置为1000,并让jQuery处理它?然后检查超时
var request = $.ajax({
type: 'POST',
url: 'someurl',
timeout: 2000,
success: function(result){},
error: function(xhr, status, message) {
if(status == "timeout") {
alert("Request time out");
}
}
});