我正在使用$interval
$interval(myAPICall, 15000);
我的API调用的函数如下:
function myAPICall() {
var openAuth = "Basic " + btoa("myusername:mypwd");
var req = {
method : 'POST',
url : '/logger/web/events',
headers : {
'Content-Type' : 'application/json',
'Authorization' : openAuth
},
data : getData(),
reportProgress: false
};
$http(req).then(function successCallback(response) {
$log.log("API call succeeded, response : " + JSON.stringify(response.data));
}, function errorCallback(response) {
$log.log("API call failed, response : " + JSON.stringify(response.data));
});
}
当我将应用程序与服务器断开连接(通过关闭wifi或关闭服务器)后,浏览器处于在线状态时,上述API调用就不会出现任何问题。当API调用发生超时(需要更多时间)时,进度条会出现在我的Web应用程序上。恢复与服务器的连接后,它仍会继续显示不确定的进度条。即使API调用成功恢复。
我希望此API在后台运行而不显示UI进度。该应用程序的所有其他API调用都需要显示一个进度栏,因此我如何仅使该请求保持静音,即没有进度栏,我该怎么做?
更新
我通过在请求配置中传递ignoreLoadingBar
解决了我的问题,所以我的请求变成了:
var req = {
method : 'POST',
url : '/logger/web/events',
headers : {
'Content-Type' : 'application/json',
'Authorization' : openAuth
},
data : getData(),
ignoreLoadingBar: true
};