我正在尝试编写一项服务,以便在登录时对用户进行身份验证:
//Authentication Service
app.factory("AuthenticationService", function($location, $http) {
return {
login: function(credentials) {
$http('api/auth/:username/:password',{'username': credentials.username, 'password' : credentials.password})
.success(function(data,status,headers,config){
if(data.success=="1"){
//succefull login
credentials.isLogged = true;
credentials.username = data.username;
return true;
}
else{
credentials.isLogged = false;
credentials.username = '';
credentials.errormessage = "Login Failed! Try again...";
return false;
}
})
.error(function(data,status,headers,config){
credentials.isLogged = false;
credentials.username = '';
credentials.errormessage = "Login Error. Missing Service";
return false;
});
},
logout: function() {
$location.path('/logout');
},
checkAuth: function(){
if (credentials.isLogged) {
return true;
} else {
$location.path('/admin/login');
}
}
};
});
在后端我有一个响应的PHP api:
[{'success':'0'}]
但是我无法从Angular中适当地进行调用,因为它始终返回“登录错误”消息。
有人可以查看此代码并告诉我我做错了什么吗? (我想很多事情)。非常感谢
修改
我改变了PHP以返回: {'成功':'0'} (或相应的1) 我也试过
$http.post(...)
但是我得到了404.网址肯定是正确的,我必须做错其他的事情......
答案 0 :(得分:1)
尝试{'成功':'0'}, 我的意思是你不能将数组作为根对象返回。
答案 1 :(得分:0)
尝试引用包含对象的数组的索引:
if (data[0].success=="1")