我使用此功能登录,但是在$http.post方法中遇到问题。我的服务器对不正确的用户名和密码的响应为400(错误请求),但是每次在此角度代码loginSuccess函数中运行(即使使用不正确的用户名和密码),其他奇怪的事情是响应为undefined,而我可以看到浏览器网络控制台中的响应。

function login (data) {
      var deferred = $q.defer();
      $http.post('api/authentication/login', data)
        .then(loginSuccess, loginFailed);
//        .success(loginSuccess);

      return deferred.promise;

      function loginSuccess (response) {
        console.log(response); // <-- undefinde
        deferred.resolve();
      }

      function loginFailed () {
        deferred.reject();
      }

    }


但是,当我使用success方法(不推荐使用)时,没有问题,并且当响应为错误时登录成功也不会运行。

最佳答案

正如@zeroflagL提到的那样,问题出在拦截器上。
我忘记了在onResponseError中返回响应。

10-06 00:49