当正在运行的ajax调用失败时,是否可以执行另一个ajax调用?
像...一样的东西。
$.ajax({
url: 'myurl.php',
type: 'post',
data: postdata
}).done(function {
// do some stuff
}).fail(function {
var faildata = jqXHR.statusText;
$.ajax({
url: 'mybackupurl.php',
type: 'post',
data: faildata
}).done({...});
});
这里的想法是创建一个服务器端日志文件(或做一个数据库条目),可以检查失败的AJAX调用。这样可以在以后检索数据以进行调试。
答案 0 :(得分:1)
快速回答:是的,可能。但...
检查返回的承诺的方式有点不对 - 它应该是function() {...}
而不是function { ... }
。另外,最好注意.done()
和.fail()
方法返回的变量类型:
.done()
返回data
,textStatus
和jqXHR
对象.fail()
返回jqXHR
个对象textStatus
,最后返回errorThrown
在函数调用中命名这些变量的顺序很重要,否则您将访问不属于它们的内容;)
$.ajax({
url: 'myurl.php',
type: 'post',
data: postdata
}).done(function(data, textStatus, jqXHR) {
// do some stuff
}).fail(function(jqXHR, textStatus, errorThrown) {
$.ajax({
url: 'mybackupurl.php',
type: 'post',
data: textStatus
}).done(function() {
// Do more
});
});
答案 1 :(得分:0)
答案是是的!,如Marco Mura所述