AngularJs POST 请求 json 无效

AngularJs POST request for json not working

嗨,我尝试了 POST json 两种方式的数据,它的响应为 null

    var jsonData = $scope.addedCat; 
    console.log(jsonData);
    var request = $http({
        method:"POST",
        url:base_url+"Category_controller/json_test",
        data: JSON.stringify(jsonData),
        dataType: "application/json"
    });
    request.success(
    function(response){
         console.log(response);
    });

var cat_j = $scope.addedCat;
var data = $.param({ json:JSON.stringify(cat_j)});
$http.post(base_url+"Category_controller/json_test/",data).success(function(data, status) {
      console.log(data);
      console.log(status);
    })
我们如何解码 php 中的 json 数据。 我在 Codeignitor 框架中这样尝试过。

    $cjson = $this->input->post('jsonData');
    $cat_json = json_decode($cjson);
    echo json_encode($cat_json);

在您的服务器 php 文件上,试试这个,您会得到从客户端传递的参数:

//get parameters 
$params = json_decode(file_get_contents('php://input'), true); //read values from angular directive
$data = json_decode(file_get_contents('php://input'), true);

并做 $data['jsonData'] 现在这个 $data['jsonData'] === $this->input->post('jsonData');

超全局 $_post 只支持 application/x-www-form-urlencodedmultipart/form-data-encoded.

对于 application/json,您应该使用 php://input,它可以为您提供数据的原始字节。以下是如何获取输入数据的示例代码:

// 获取原始 POST 数据

$rawData = file_get_contents("php://input");

// 如果无效 json

,则此 returns 为 null
print_r(json_decode($rawData));