我有一个提交功能,它将一些数据发布到服务器中,然后服务器返回一个响应。功能正常。不过,我想在后期处理过程中发现一些错误。例如,如果没有与服务器的连接,则向用户返回错误以通知他正在进行的操作。而不是只是按下按钮,什么都不做。我知道我可以创建一个函数以某种方式ping服务器并检查它是否还活着,但这不是我需要的。我想在错误函数中有一个语句,并捕获大部分可能的错误并向用户输出解释。
$scope.submit = function() {
var link = 'http://app.example.com/api.php';
$http.post(link, {
username: $scope.data.username,
password: $scope.data.password
}).then(function(res) {
$scope.response = res.data;
$localStorage.token = res.data;
console.log($localStorage.token);
})
.catch(function(error) {
console.error(error);
})
.finally(function() {
//do something
});
};
答案 0 :(得分:0)
解决方案:
$http.post(link, {
username: md5.createHash($scope.data.username),
password: md5.createHash($scope.data.password),
}).then(function(res) {
//Success Scenario
})
.catch(function(error) {
if (error.statusText == ""){
$scope.response = "Unexpected error. Make sure WiFi is on."
//When the device is not connected on the internet the response error is -1 (or any number) and the statusText is empty. So we caching that one as-well.
}
else {
$scope.response = "Error - "+error.status + " ("+error.statusText+")";
//else we display the error along with the status, for example error 500 Internal Server error.
}
})
.finally(function() {
//This function will always be called at the end. Take advantage of it :)
});
我希望它对某人有用。