Javascript 捕获状态如何使post请求失败?
我有代码,这个脚本在循环中发送请求:Javascript 捕获状态如何使post请求失败?,javascript,jquery,request,Javascript,Jquery,Request,我有代码,这个脚本在循环中发送请求: function parse() { $.post("meth.php", { proxy: $proxy, time: (new Date().getTime()) }, function(data) { return setTimeout(function() {parse()}, 5000); }, "json"); } 但有时服务器发送状态出错,我需要忽略此错误并发送新请求 我
function parse() {
$.post("meth.php", {
proxy: $proxy,
time: (new Date().getTime())
}, function(data) {
return setTimeout(function() {parse()}, 5000);
}, "json");
}
但有时服务器发送状态出错,我需要忽略此错误并发送新请求
我尝试:
function parse() {
try{
$.post("meth.php", {
proxy: $proxy,
time: (new Date().getTime())
}, function(data) {
return setTimeout(function() {parse()}, 5000);
}, "json");
} catch (err) {
return setTimeout(function() {parse()}, 5000);
}
}
但是这个构造不起作用,请帮助你没有起作用,因为它不会在Ajax请求失败时抛出错误。通过查看jqueryforajax中的文档可以看到这一点。您将根据您的操作方式对事件使用失败或错误 或者,你也可以用一个承诺来激励成功和失败
var activeTimer;
function foo() {
if (activeTimer) window.clearTimeout(activeTimer)
$.ajax({
method: "POST",
url: "some.php",
data: { }
}).always(function() {
activeTimer = window.setTimeout(foo, 5000)
});
}
您所做的不起作用,因为它不会在Ajax请求失败时抛出错误。通过查看jqueryforajax中的文档可以看到这一点。您将根据您的操作方式对事件使用失败或错误 或者,你也可以用一个承诺来激励成功和失败
var activeTimer;
function foo() {
if (activeTimer) window.clearTimeout(activeTimer)
$.ajax({
method: "POST",
url: "some.php",
data: { }
}).always(function() {
activeTimer = window.setTimeout(foo, 5000)
});
}
使用
$.ajax
而不是$.post
您可以使用具有属性error
的$.ajax来处理与jqxhr相关的错误,状态为i尝试使用带有错误的ajax,但创建了重复项,并并行启动工作2或3函数post()使用$.ajax
而不是$.post
您可以使用具有属性error
的$.ajax来处理与jqxhr相关的错误,状态为i尝试使用带有错误的ajax,但创建了重复项,并并行启动工作2或3函数post()