PHP 中的 HTTPPost 到 JSON

HTTPPost to JSON in PHP

我正在 Javascript 中执行 HTTP Post 请求以更新 JSON 文件。

function updateJson(dataNew){
  var stringData = JSON.stringify(dataNew);
    $.ajax({
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    url: 'update.php',
    data: {stringData},
    success : function(d){
       alert('done');}
    })
}

然后在 PHP:

<?php
  $a = json_encode(file_get_contents("php://input"));
  file_put_contents('newData.json', $a);
?>

我想要 JSON 文件中的 JSON 数据,但是 json 文件只包含一个类似于 http post 的请求负载的字符串.我做错了什么?

我建议在数据对象中传递一个 key/value 对,并将 contentType 属性保留为默认值(删除它),例如:

$.ajax({
    ...
    data: {myjson: stringData},
    ...
);

然后在 PHP 中,您应该阅读发布的数据并获取 myjson 元素,无需再次编码,因为它已经是 JSON:

<?php
  $a = $_POST['myjson'];
  file_put_contents('newData.json', $a);        
?>