Javascript 服务器返回201,但承诺路由错误
我有一个名为AuthService的服务,它发出登录的post请求 服务器响应使用201,但执行then()中的第二个函数,而不是第一个函数Javascript 服务器返回201,但承诺路由错误,javascript,angularjs,angular-promise,Javascript,Angularjs,Angular Promise,我有一个名为AuthService的服务,它发出登录的post请求 服务器响应使用201,但执行then()中的第二个函数,而不是第一个函数 AuthService.login(credentials) .then(function(data){ console.log("Login success====") console.log(data); //if its successful $rootScope.$broad
AuthService.login(credentials)
.then(function(data){
console.log("Login success====")
console.log(data);
//if its successful
$rootScope.$broadcast(AUTH_EVENTS.loginSuccess);
$scope.setCurrentUser(user);
$state.go('dashboard.account');
}, function(error){ // THIS IS EXECUTED ONCE SERVER RESPONDS
console.log("Login error====")
//$rootScope.$broadcast(AUTH_EVENTS.loginFailed);
console.log('Error: ' + error);
});
所以我得到的是“登录错误==”而不是成功。我不知道我为什么要遵循这个指南
我认为201是成功的
错误包含
Error: TypeError: Cannot read property 'id' of undefined
//会话是存储用户数据的服务
.factory('AuthService', function ($http, Session) {
var authService = {};
authService.login = function (credentials) {
return $http
.post('/login', credentials)
.then(function (res) {
Session.create(res.data.id, res.data.user.id,
res.data.user.role);
return res.data.user;
});
};
error
变量包含什么?我不确定这是否有用,但是“error:TypeError:cannotreadproperty'id'ofundefined”。如果服务器正在发回201,我不确定它为什么首先输入错误。您能否发布AuthService.login
?错误在Session.create(res.data.id,res.data.user.id,res.data.user.role)行中代码>。您的res
对象没有data
属性或data.user
属性。第二个函数是错误回调,因此如果有错误(任何类型的错误),将调用它。而error
变量包含什么?我不确定这是否有用,但是“错误:TypeError:无法读取未定义的属性'id'。如果服务器正在发回201,我不确定它为什么首先输入错误。您可以发布AuthService.login的代码吗?
?错误在Session.create(res.data.id,res.data.user.id,res.data.user.role)行中
。您的res
对象没有data
属性或data.user
属性。第二个函数是错误回调,因此如果出现错误(任何类型的错误),将调用它。