angular $ http.post然后方法不起作用

时间:2015-10-17 08:50:59

标签: javascript angularjs

我使用此功能登录,但我在$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方法(不推荐使用)时,没有问题,并且当响应错误时,登录成功不会运行。

1 个答案:

答案 0 :(得分:0)

正如@zeroflagL所说,问题来自拦截器。 我忘了在onResponseError中返回响应。