javascript - Angular $http.post then 方法不起作用

标签 javascript angularjs

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

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 中返回响应。

关于javascript - Angular $http.post then 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33184679/

相关文章:

javascript - jQuery.parseHTML 的反向

javascript - Ember.js 如何引用 Grunt.js 预编译的 Handlebars 模板?

javascript - 隐藏/显示 ng-grid?

angularjs - 每次它使用的数据发生变化时,如何让 AngularJS 重新运行一个函数?

angularjs - 当更新一个指令中需要反射(reflect)在另一指令中的数据时,使用 $apply 是一种不好的做法吗?

javascript - angularjs + requirejs = 参数 'controller' 不是函数,未定义

jquery - 如何在不使用 jQuery 的情况下获取元素的 offset().top 值?

javascript - 不活动时淡出鼠标光标(使用 jQuery)

javascript - 如何在条件语句中将字符串输入字段值与单词数组进行比较

javascript - Phonegap 中的解析查询返回错误 100 XMLHTTPRequest 失败