您好我以两种方式尝试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);
})
$cjson = $this->input->post('jsonData');
$cat_json = json_decode($cjson);
echo json_encode($cat_json);
答案 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-urlencoded
和multipart/form-data-encoded
。
对于application/json
,您应该使用php://input
,它可以为您提供数据的原始字节。以下是如何获取输入数据的示例代码:
//获取原始POST数据
$rawData = file_get_contents("php://input");
//如果无效json
,则返回nullprint_r(json_decode($rawData));