AngularJs POST请求json无法正常工作

时间:2016-03-09 10:39:37

标签: angularjs json codeigniter http-post

您好我以两种方式尝试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);

3 个答案:

答案 0 :(得分:1)

在您的服务器php文件上,尝试相反,并获得从客户端传递的参数:

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

答案 1 :(得分:0)

$data = json_decode(file_get_contents('php://input'), true);

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

答案 2 :(得分:0)

Superglobal $ _post仅支持application/x-www-form-urlencodedmultipart/form-data-encoded

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

//获取原始POST数据

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

//如果无效json

,则返回null
print_r(json_decode($rawData));