为什么如果失败,我无法保留调用 api
Why I cannot keep call api if fail?
下面如果我的代码...
$(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 将失败,我想要的是重试直到失败三次并发出一些消息警报。
但是此代码不起作用。
我该怎么办?
您可以做的是创建一个函数,该函数发出 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
});
相关文章:
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 自调用函数不保留私有值
- 使用promise.then时,是否可以保留在单击事件调用堆栈中
- 保留 Azure 移动服务的自定义 API 调用的用户身份验证
- 为什么如果失败,我无法保留调用 api
- 包装“控制台.log”并保留调用堆栈
- 如何在回发上保留选定的选项卡或以编程方式调用之前激活方法
- 在对 FB.api 进行异步调用时保留变量值
- 使用javaScriptSupport.addInitializerCall调用fnStandingRedraw以保留D
- 在保留状态的同时调用原型方法
- 如何在ajax调用后保留toggleClass事件状态
- 如何在Spring MVC中使用AJAX调用时保留搜索过滤器值
- 为什么在这种情况下调用 ES6 时“产生”是一个保留字
- 剑道UI输入焦点-在选择和Ajax调用之后,下拉列表保留焦点
- 如何在调用函数后保留标签的值
- 如何在ajax调用后保留页面的旧内容
- 如何通过各种调用保留特定的项id
- 词法作用域变量在getJSON调用中被覆盖后仍保留其值
- 对ClientScript的调用不保留网页控件中的值
- 如何编写一个能够在调用之间保留值的Javascript函数