我在角度js中使用$ http进行ajax调用。我已经实现了超时。但是,如果连接超时,我想向用户显示错误消息。以下是代码..
$http({
method: 'POST',
url: 'Link to be called',
data: $.param({
key:Apikey,
id:cpnId
}),
timeout : 5000,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(result){
alert(result);
}).error(function(data){
alert(data);
});
是否有任何方法可以在连接超时时显示用户。 有什么办法可以在一个地方配置吗?
答案 0 :(得分:1)
试试这个博客页面:http://www.jonhartmann.com/index.cfm/2014/7/23/jsFiddle-Example-Proper-Timeout-Handling-with-AngularJS 它有一个完整的角度运行示例,可以解决您的问题。
答案 1 :(得分:1)
您可以使用角度拦截器来实现此目的。
$httpProvider.responseInterceptors
.push(['$q', '$injector','$rootScope', function ( $q, $injector,$rootScope) {
return function (promise) {
return promise.then(function (response) {
return response;
}, function (response) {
console.log(response); // response status
return $q.reject(response);
});
};
}]);
}]);
答案 2 :(得分:-2)
您只需要检查响应状态即可:
}).error(function(data, status, header, config) {
if (status === 408) {
console.log("Error - " + status + ", Response Timeout.");
}
});
对于全局HTTP超时,请查看此answer