我利用了jQuery的魔力。Ajax(设置)。
然而,我想知道是否有人经常使用暂停设置?
我知道它主要用于为请求指定本地时间,但如果达到超时,它能触发什么吗?或者它只是停止倾听回应?
阅读jQuery站点,我可以看到没有传递参数,所以它看起来是一个只有一个功能的简单设置。这很好。
但是,我想在超时时触发一个警报或一些函数。在这种情况下,错误设置没有被触发。
以下是我的片段:
$("form#testform").submit(function(){
var allFormValues = $("form#testform").serialize();
$.ajax({
cache:false,
timeout:8000, // I chose 8 secs for kicks
type:"POST",
url:"someurl.php",
data:allFormValues,
error:function(){ alert("some error occurred") },
success:function(response){ alert(response); }
});
});
有人知道如何在超时时间工作吗?
如果您的错误事件处理程序在超时发生时接受三个参数(xmlhttprequest, textstatus和message),则状态参数将为'timeout'。
根据jQuery文档:
第二个可能的值
参数(除null外)为"timeout",
"error", "notmodified"和
“parsererror”。
你可以相应地处理你的错误。
我创造了这把小提琴来演示这个。
$.ajax({
url: "/ajax_json_echo/",
type: "GET",
dataType: "json",
timeout: 1000,
success: function(response) { alert(response); },
error: function(xmlhttprequest, textstatus, message) {
if(textstatus==="timeout") {
alert("got timeout");
} else {
alert(textstatus);
}
}
});
使用jsFiddle,你可以测试ajax调用——它会在响应前等待2秒。我把超时设置为1秒,所以它应该出错,并将“timeout”的textstatus传递回错误处理程序。
希望这能有所帮助!
如果您的错误事件处理程序在超时发生时接受三个参数(xmlhttprequest, textstatus和message),则状态参数将为'timeout'。
根据jQuery文档:
第二个可能的值
参数(除null外)为"timeout",
"error", "notmodified"和
“parsererror”。
你可以相应地处理你的错误。
我创造了这把小提琴来演示这个。
$.ajax({
url: "/ajax_json_echo/",
type: "GET",
dataType: "json",
timeout: 1000,
success: function(response) { alert(response); },
error: function(xmlhttprequest, textstatus, message) {
if(textstatus==="timeout") {
alert("got timeout");
} else {
alert(textstatus);
}
}
});
使用jsFiddle,你可以测试ajax调用——它会在响应前等待2秒。我把超时设置为1秒,所以它应该出错,并将“timeout”的textstatus传递回错误处理程序。
希望这能有所帮助!