Angularjs 如何使用restanglar从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

我在使用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 = 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);
});