工厂没有 return http 数据响应

Factory doesnt return http data response

我正在尝试使用下面的代码(正在运行)获取 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

怎么了?

您的 return response.data; returns 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 方法 returns promise 对象具有 .then 方法