Javascript 设置ajax超时(jQuery)
有时Javascript 设置ajax超时(jQuery),javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,有时success功能工作正常,有时不正常 如何设置此ajax请求的超时?例如,3秒,如果超时,则显示错误 问题是,ajax请求将冻结块,直到完成。若服务器停机一段时间,它将永远不会结束。下面的一些示例演示了在jQuery的新旧范例中设置和检测超时 承诺jQuery 1.8+ $.ajax({ url: "test.html", error: function(){ //do something }, success: function(){
success
功能工作正常,有时不正常
如何设置此ajax请求的超时?例如,3秒,如果超时,则显示错误
问题是,ajax请求将冻结块,直到完成。若服务器停机一段时间,它将永远不会结束。下面的一些示例演示了在jQuery的新旧范例中设置和检测超时 承诺jQuery 1.8+
$.ajax({
url: "test.html",
error: function(){
//do something
},
success: function(){
//do something
}
});
Promise.resolve(
$.ajax({
url: '/getData',
timeout:3000 //3 second timeout
})
).then(function(){
//do something
}).catch(function(e) {
if(e.statusText == 'timeout')
{
alert('Native Promise: Failed from timeout');
//do something. Try again perhaps?
}
});
jQuery 1.8+
$.ajax({
url: "test.html",
error: function(){
//do something
},
success: function(){
//do something
}
});
Promise.resolve(
$.ajax({
url: '/getData',
timeout:3000 //3 second timeout
})
).then(function(){
//do something
}).catch(function(e) {
if(e.statusText == 'timeout')
{
alert('Native Promise: Failed from timeout');
//do something. Try again perhaps?
}
});
jQuery以下是一些示例,演示如何在jQuery的新旧范例中设置和检测超时 承诺jQuery 1.8+
$.ajax({
url: "test.html",
error: function(){
//do something
},
success: function(){
//do something
}
});
Promise.resolve(
$.ajax({
url: '/getData',
timeout:3000 //3 second timeout
})
).then(function(){
//do something
}).catch(function(e) {
if(e.statusText == 'timeout')
{
alert('Native Promise: Failed from timeout');
//do something. Try again perhaps?
}
});
jQuery 1.8+
$.ajax({
url: "test.html",
error: function(){
//do something
},
success: function(){
//do something
}
});
Promise.resolve(
$.ajax({
url: '/getData',
timeout:3000 //3 second timeout
})
).then(function(){
//do something
}).catch(function(e) {
if(e.statusText == 'timeout')
{
alert('Native Promise: Failed from timeout');
//do something. Try again perhaps?
}
});
jQuery您可以在ajax选项中使用
timeout
设置,如下所示:
$.ajax({
url: '/getData',
error: function(jqXHR, textStatus){
if(textStatus === 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}
},
success: function(){
//do something
},
timeout:3000 //3 second timeout
});
在此处阅读有关ajax选项的所有内容:
请记住,当发生超时时,
错误
处理程序被触发,而不是成功
处理程序:)您可以在ajax选项中使用超时
设置,如下所示:
$.ajax({
url: '/getData',
error: function(jqXHR, textStatus){
if(textStatus === 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}
},
success: function(){
//do something
},
timeout:3000 //3 second timeout
});
在此处阅读有关ajax选项的所有内容:
请记住,当超时发生时,将触发
错误处理程序,而不是成功处理程序:)请阅读$。ajax
,这是一个涵盖的主题
$.ajax({
url: "test.html",
timeout: 3000,
error: function(){
//do something
},
success: function(){
//do something
}
});
通过访问error:function(jqXHR,textStatus,errorshown)
选项的textStatus参数,可以查看抛出的错误类型。选项有“超时”、“错误”、“中止”和“解析器错误”。请阅读$。ajax
,这是一个涵盖的主题
$.ajax({
url: "test.html",
timeout: 3000,
error: function(){
//do something
},
success: function(){
//do something
}
});
通过访问error:function(jqXHR,textStatus,errorshown)
选项的textStatus参数,可以查看抛出的错误类型。选项有“超时”、“错误”、“中止”和“解析器错误”。使用功能齐全的.ajax
jQuery函数。
例如,与比较
无需测试,只需将代码与引用的SO问题合并即可:
$.ajax({
url: "test.html",
error: function(){
// will fire when timeout is reached
},
success: function(){
//do something
},
timeout: 3000 // sets timeout to 3 seconds
});
使用功能齐全的.ajax
jQuery函数。
例如,与比较
无需测试,只需将代码与引用的SO问题合并即可:
$.ajax({
url: "test.html",
error: function(){
// will fire when timeout is reached
},
success: function(){
//do something
},
timeout: 3000 // sets timeout to 3 seconds
});
如果您的请求通过NginX,也不要忘记检查NginX设置
Ajaxoptions.timeout
是一回事,但nginx请求超时可能也需要调整
请参见如果您的请求通过NginX,请不要忘记检查NginX设置
Ajaxoptions.timeout
是一回事,但nginx请求超时可能也需要调整
请参见您需要一个,
在}
之后。查看此>您需要的可能副本,
在}
之后。看看这个>H-Bahrami和Rudolf Mühlbauer可能的副本谢谢你的回复,但我是ajax新手,所以请通过我的代码澄清…因为我已经看到了这些答案,但我不知道发生了什么…所以请帮助我…我如何通过.load()完成?有没有可能?@S.S,试着在load的文档中查找timeout:--我的代码中有一个输入错误,更正。H-Bahrami和Rudolf Mühlbauer感谢您的回复,但我是ajax新手,所以请通过我的代码澄清…因为我已经看到了这些答案,但我不知道发生了什么…所以请帮助我…我如何通过.load()完成?有没有可能?@S.S,试着在load:--的文档中查找timeout:--我的代码中有一个输入错误,已更正。$.ajax().fail()
和$.ajax().error()
?@GarciaWebDev-关于包含jQuery 1.8+,请参见+1。对于类似问题的大多数其他答案只包括来自$.ajax().fail()
和$.ajax().error()
?@GarciaWebDev的成功/错误-关于包含jQuery 1.8+,请参见+1。对于类似问题的大多数其他答案只包括关于捕获超时错误的成功/错误。我似乎不太适应,超时:1,确认它已被传递,但决不会超过。请确保用try/catch包装整个$.ajax调用。jQuery不会捕获中止,它将在$.ajax调用之外抛出。关于捕获超时错误,我觉得似乎不起作用,超时:1,已确认它已被传递,只是不会超时确保用try/catch包装整个$.ajax调用。jQuery不会捕获中止,它将在$.ajax调用之外抛出。