【问题标题】:POST array empty on jQuery AJAX calljQuery AJAX 调用上的 POST 数组为空
【发布时间】:2012-10-21 17:38:17
【问题描述】:

我不敢问,因为关于这个主题还有很多其他帖子(例如onetwo),但这些帖子中的解决方案似乎都不适用于我。

我正在尝试将 JSON 编码的对象从页面传递到 PHP 控制器,然后返回一些信息。

如果我在 Firebug 中观看,我可以在“发布”选项卡下看到正在发送的对象,但是当我打印出 $_GET、$_POST 和 $_REQUEST 数组时,我看不到任何关于 json 对象的信息。 $_GET 数组至少显示了我的“update-player”查询字符串,但是 POST 是空的,REQUEST 只显示了我拥有的一些本地 cookie。

这是我的 jQuery 代码。正如你所看到的,我现在正在对 JSON 进行硬编码,目的是我将有一个 jQuery 方法来更新本地对象。

function sendPlayerUpdate(row, col) {
    var playerinfo = [
        {
          "id": 1,
          "row": row,
          "col": col
        }
      ];

        alert(playerinfo[0].id); //debugging

    $.ajax({
        type: 'POST',
        url:"controller.php?a=update-player",
        //data: $.toJSON(playerinfo[0],
        data: { json: JSON.stringify(playerinfo) },
        contentType: "application/json",
        success: function (){

        },
        dataType: 'json'
      });
 };

我对应的处理请求的 PHP 代码:

// update player information from AJAX POST
case "update-player":
  if (isset($_POST['json'])) echo "json received\n\n";
  else echo "json not received\n\n";
  echo "GET VARIABLES\n";
  print_r($_GET);
  echo "\n\nPOST VARIABLES\n";
  print_r($_POST);
  echo "\n\nREQUEST VARIABLES\n";
  print_r($_REQUEST);

还有,我在 Firebug 中看到的:

json 未收到

GET VARIABLES
Array
(
    [a] => update-player
)


POST VARIABLES
Array
(
)


REQUEST VARIABLES
Array
(
    [a] => update-player
    (local cookies)
)

【问题讨论】:

    标签: php jquery post


    【解决方案1】:

    在 PHP 中尝试如下(当请求是应用程序/json 时,您不会将数据放入 $_POST)

    var_dump(json_decode(file_get_contents("php://input")));
    

    【讨论】:

    • 由于application/json,你的json传入body请求
    • 啊,有道理...所以我可以将其拉入本地对象并从那里工作。谢谢!
    【解决方案2】:

    试试这个 可能对你有用

     $.ajax({
    type: 'POST',
    url:"controller.php?a=update-player",
    data: data_json=JSON.stringify(playerinfo),
    success: function (data){
    },
    }); 
    

    【讨论】:

    • 试过了,但是 $_POST 数组还是空的。
    • 能否请您再次发布 PHP 代码并使用 $_POST['data_json']?
    • 查看接受的答案...我只是从原始输入数据中读取。不过谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 2015-01-27
    • 2010-12-11
    • 2010-09-21
    相关资源
    最近更新 更多