[AngularJS]无法获取正确的数据与 AngularJS post 方法

发布时间: 2017/4/16 11:37:28
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

这是我第一次与 AngulerJS。我试着 POST 数据到服务器。

AngularJS 代码

 var app = angular.module("myApp", []);
var BASE_URL = "http://localhost/project/api/Data/";

var GET_DATA = BASE_URL+"get_data";
console.log(GET_DATA);
app.controller('myCtrl', function($scope, $http) {
var inputs = { "user_id": "3"};
var config = {
              headers : {
                  'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
              }
          }
$http.post(GET_DATA , inputs, config)
          .success(function (response, status, headers, config) {
              $scope.content = response.error;
              $scope.statuscode = response.status;
              $scope.statustext = response.statusInfo;
              console.log(response);    
          })
          .error(function (data, status, header, config) {
              $scope.ResponseDetails = "Data: " + data +
                  "<hr />status: " + status +
                  "<hr />headers: " + header +
                  "<hr />config: " + config;
          });

});

此代码过帐数据到服务器,但与有线格式的东西。下面是我 print_r($_POST); 结果︰

Array
(
    [{"user_id":"3"}] => 
    [0] => 
)

这是错误的结果,像期待

Array
(
    user_id => 3
)

注︰ 我在服务器端使用 CodeIgniter 框架。

解决方法 1:

您可以发送您的 post 数据 json :

$http.post(GET_DATA , {"user_id": "3"})
      .success(function (response, status, headers, config) {
          $scope.content = response.error;
          $scope.statuscode = response.status;
          $scope.statustext = response.statusInfo;
          console.log(response);    
       })
      .error(function (data, status, header, config) {
          $scope.ResponseDetails = "Data: " + data +
             "<hr />status: " + status +
             "<hr />headers: " + header +
             "<hr />config: " + config;
       });
});

在服务器端,你可以像这样 post 数据︰

$postdata = json_decode(file_get_contents('php://input'));
print_r($postdata);

你必须对你在文章正文中的数据进行编码 urlencoded 格式时请求的内容类型是应用程序/x-www-窗体-urlencoded'。这应该是这样︰

var inputs = 'student_id=3';
官方微信
官方QQ群
31647020