读取使用Ajax调用发送的PHP中的json数据

时间:2015-02-19 22:05:16

标签: javascript php jquery ajax json

开发的前端是通过Ajax调用发送格式化为JSON对象的数据数组。 json对象如下所示:

{
 "name": " Test Name ",
 "image_url": "test URL",
 "include": [
  "1"
 ],
 "dimension": [
  null
 ],
 "media_type": [
  null
 ],
 "match": [
  "1"
 ],
 "content": [
  "test content"
 ],
 "sorting": {
  "rating": "50",
  "language": "50",
  "CS Weight": "50",
 }
}

我如何在PHP控制器中阅读它。我能以这种方式得到它:

$data = $_POST;

因为在这种情况下包含JSON对象的变量没有名称,所以我不能这样做

$data = $_POST['data']

已编辑的部分


从前端开始,数据以这种方式发送:

 sendAjax: function(value, url, callback){
            xhr = $.ajax({
                type: 'POST',
                url: url,
                data: value
            }).done(function(message){
                callback(message);
            }).fail(function(jqXHR, textStatus){
                console.log('failed to submit form, error type: '+textStatus);
            });
        }

2 个答案:

答案 0 :(得分:1)

从脚本的输入中读取它,在这里您可以获得" raw" POST数据:

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

答案 1 :(得分:0)

假设您在前端使用jquery,这应该可行。只需将其粘贴到您的JavaScript控制台并运行它(确保用您的网址替换路径。参数应该正确。

data = {
 "name": " Test Name ",
 "image_url": "test URL",
 "include": [
  "1"
 ],
 "dimension": [
  null
 ],
 "media_type": [
  null
 ],
 "match": [
  "1"
 ],
 "content": [
  "test content"
 ],
 "sorting": {
  "rating": "50",
  "language": "50",
  "CS Weight": "50",
 }
}

$.ajax({url:'/YOUR/PATH/HERE', data: {data: data}, type: 'post', dataType: 'json'})

发帖后发生在我身上,您是否询问如何在收到JSON后解析JSON或如何在$ _POST哈希中显示它?