我使用此功能登录,但在 $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/