我试图使用下面的代码获取http post数据响应(它正在工作)。
app.factory('LoginService', function($http, $location) {
return {
existUser: function(loginObj)
{
$http({
method: 'POST',
url: server + '/login',
headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'},
data: 'json=' + JSON.stringify(loginObj)
}).then(function successCallback(response) {
return response.data;
}, function errorCallback(response) {
console.log(response);
console.log("erro!");
});
}
}
});
在我的控制器里面,我有:
LoginService.existUser(loginObj).then(function (data){
console.log(data);
});
我得到了错误:
Cannot read property 'then' of undefined
有什么问题?
答案 0 :(得分:1)
您的return response.data;
会返回then
函数的结果,而不是existUser
!修改您的代码如下:
app.factory('LoginService', function($http, $location) {
return {
existUser: function(loginObj)
{
return $http({
method: 'POST',
url: server + '/login',
headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'},
data: 'json=' + JSON.stringify(loginObj)
})
}
}
});
在这种情况下,existUser
方法返回promise对象,该对象具有.then
方法