Angularjs 如何使用restanglar从400错误中获得响应
我在使用restangular从400错误头获取响应时遇到问题。我写的代码是:Angularjs 如何使用restanglar从400错误中获得响应,angularjs,restangular,Angularjs,Restangular,我在使用restangular从400错误头获取响应时遇到问题。我写的代码是: var loginData = Restangular.all("login"); $scope.postForm = function() { loginData.post($scope.formData).then(function(response){ var error = response.error; if(error) { $scope.error
var loginData = Restangular.all("login");
$scope.postForm = function() {
loginData.post($scope.formData).then(function(response){
var error = response.error;
if(error) {
$scope.error = response.message;
} else {
localStorageService.clearAll();
localStorageService.set('xxx', response.id);
localStorageService.set('xxx', response.apiKey);
$location.path('/main');
}
});
}
当我返回一个200头时,$scope.error将获取response.message,但当响应头为400时则不会。我设置了setErrorInterceptor()将消息记录到控制台,但我不知道如何让它返回响应,以便设置$scope.header
编辑:这是我在setErrorInterceptor()中将消息记录到控制台的方式
查看常见问题解答。您需要将第二个函数传递到promise的then()
方法中,以充当错误处理程序
Restangular.all("accounts").getList().then(function() {
console.log("All ok");
}, function(response) {
console.log("Error with status code", response.status);
});
啊,谢谢你,伙计。我没听懂那部分。我还意识到我的一些API响应发送了错误的头,这导致了一些混乱。现在全部修复。您知道出现错误时返回的标题在哪里吗?我设置了一个错误拦截器,但找不到响应头。401s可以返回有很多原因,但如果用户未登录,我的服务器将返回401加上一个标头。Nvm我从未在我的服务器上公开这些标头
Restangular.all("accounts").getList().then(function() {
console.log("All ok");
}, function(response) {
console.log("Error with status code", response.status);
});