在我的Controller
:
function login(credentials) {
AuthService
.login(credentials)
.then(successCallback, errorCallback);
//same issue with .then(successCallback).catch(errorCallback);
}
function successCallback() {
// do something after success
}
function errorCallback(data) {
// do something after error
}
在我的AuthService
:
authService.login = function (credentials) {
return $http
.post(ENV.apiEndpoint + 'api/v1/login_check', credentials)
.then(
function (result) {
Session.create(result.data.token, result.data.data);
},
function (data) {
Messages.create('Login failed: ' + data.statusText);
}
);
}
当我POST
提供 200 响应代码时,一切都会按预期do something after success
执行。
但是当我的 POST 结果为 401 时,我可以看到 Messages.create 被调用(所以在这种情况下它进入了error
路径),但不幸的是我的控制器调用了successCallback
而不是errorCallback
.
我不得不迁移它,因为我使用的是不推荐使用的,并且因为 Angular 1.6 删除了.success
和.error
promise 属性。它当时正在工作,但迁移后它不再工作了。
我在这里做错了什么?