HTTPPost to JSON in PHP

HTTPPost to JSON in PHP

本文关键字:PHP in JSON to HTTPPost      更新时间:2023-09-26

我正在用Javascript进行HTTPPost请求,以便更新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的请求负载。我做错了什么?

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

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

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

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