在angularjs中查看http请求后未加载新数据

时间:2018-03-06 03:25:09

标签: angularjs

我想从表单提交数据,并在http请求返回结果后直接在视图中显示结果。但它没有发生。

$scope.formData = {};
$scope.add = function (){         
   $http.post('add.php',$scope.formData,{'Content-Type': 'application/x-www-form-urlencoded'})
   .then(function (result) {
      console.log(result.data);          
      if (result){
         $scope.data = result.data;
      }                   
   });
};

这是add.php。在此文件中,我只想在json中返回发布的数据。

function index(){
   $data = $this->input->post();
   echo json_encode($data);
}

我发现它返回false值。我想知道如何使用post这样的$http.post方法处理提交的数据。

2 个答案:

答案 0 :(得分:0)

您可以尝试这种方式将数据传递到 add.php 服务

$scope.add = function (){  
    $http({
      method: 'POST',
      url: 'add.php',
      headers: {
       'Content-Type': application/x-www-form-urlencoded
      },
    data:$scope.formData

    }).then(function successCallback(response) {
        $scope.data = response.data.data;

      }, function errorCallback(response) {
        console.log(response);

      });
 }

答案 1 :(得分:0)

PHP

中尝试此操作
$data = $this->input->post(NULL, TRUE); 

AngularJS 中,在您的服务/工厂中注入 $ httpParamSerializerJQLike

$scope.add = function (){  
    $http({
      method: 'POST',
      url: '/add.php',
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
      },
      data: $httpParamSerializerJQLike($scope.formData);

    }).then(function resolve(response) {
        console.log(response);
        $scope.data = response.data.data;
    }, function reject(response) {
        console.log(response);

    });
 }