下面是我的代码......
$(document).ready(function() {
var counter=0;
$.ajax({
url: "http://www.test.com:1234/testService",
method: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: data
})
.done(function(data) {
console.log(data);
})
.fail(function(errMsg) {
console.log(errMsg);
counter++;
console.log(counter);
if(counter <=3){
$.ajax(this);
}
else {
alert("Three times failed");
}
});
});
运行此代码将从API获取正确的数据。
但是,如果我删除api url末尾的“e”,API将失败,我想要的是再次重试,直到失败三次并提醒某些消息。
但是这段代码无效。
我该怎么办?
答案 0 :(得分:4)
你可以做的是创建一个使ajax请求失败的函数再次调用该函数。
$(document).ready(function () {
var counter = 0;
function apiCall() {
$.ajax({
url: "http://www.asiavista.com.tw:9595/ccplapi/service.svc/CheckService",
method: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify({ClientType: 1})
})
.done(function (data) {
console.log(data);
})
.fail(function (errMsg) {
console.log(errMsg);
counter++;
console.log(counter);
if (counter <= 3) {
apiCall(); // Try api call again
} else {
alert("Three times failed");
}
});
}
apiCall(); // Trigger the first api call
});