如何使用$ http获取$ http发布请求的响应数据-AngularJS

时间:2018-10-20 12:13:05

标签: angularjs

我正在开发一个项目(AngularJS + PHP),其中一个数据库用于用户登录(有关用户/客户端及其数据库的参数),另一个数据库用于用户/客户端(每个用户都有自己的数据库)。 登录时,我想连接到正确的数据库。我已经成功使用某些客户端帐户登录,捕获了客户端数据库的db参数,但是当我需要连接到相应的客户端数据库时,它就无法正常工作。 我使用服务:

app.factory('loginService', function ($http, $location, sessionService) {
return{
   .........................
      fetchuser: function () {
              var usr = $http.get('model/fetch.php');
             return usr;
            },
      fetchdbdata: function (dbdata) {
              var usrdb = $http.post('model/fetchDB_data.php', dbdata);
              return usrdb;
           }
       }
    .........................
});

和相应的控制器:

app.controller('homeCtrl', ['$scope', 'loginService', '$location',     
    function ($scope, loginService, $location) {
       var dbdata;     
       var userrequest = loginService.fetchuser();
       userrequest.then(function (response) {
           //take users data, database params 
           $scope.usr = response.data[0];        

           //in console  dbdata return correct object
           dbdata = {
                 host_name: $scope.usr.host_name,
                 database_name: $scope.usr.database_name,
                 user_db: $scope.usr.user_db,
                 password_db: $scope.usr.password_db
                };      
            console.log(dbdata);
            /* ***************************************
               if i use manually data like:
            dbdata = {
                host_name: "mysql333****",
                database_name: "da*******",
                user_db: "uc******",
                password_db: "^r******"
               };
            console.log(dbdata);
              it works, and in console bellow return correct object and 
              result. 
              I don't understand why.
            *******************************************/       
           var userrequestdb = loginService.fetchdbdata(dbdata); 
           userrequestdb.then(function (response) {               
               $scope.usrdb = response.data[0];
               console.log($scope.usrdb);  //in console return E - nothing
           });
       });
    }
]);

任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

数据库名称不同: 在不起作用的那个是“ consultech_17” 在运行的是“ consultech_rs_db_16”