私はPHPの関数にデータを送信し、次のjavascriptがありますなぜPHP json_encodeは空の配列を無視しますか?
<script>
var mydata = {
id:123,
name: 'mike',
orders: []
};
$.ajax({
type: 'POST',
url: 'test.php',
data: {save_data:mydata},
success: function(data) {
alert('php received: ' + data);
}
});
</script>
を、私のtest.php
ファイルには、次のコードが含まれます。私はPHPから受信することを期待何
<?php
if (isset($_POST['save_data'])) {
$json = json_encode($_POST['save_data']);
echo $json; // just to check what has been received
exit();
}
?>
は次のとおりです。 {"id":"123","name":"mike","orders":"[]"}
私が返すものは{"id":"123","name":"mike"}
ですorders
配列が出力から削除されていることに注意してください。それのための場所のホルダーなし。配列にダミーの要素を追加しようとしましたが、うまくいきました。
空の配列が含まれていても、jsonオブジェクトをそのまま受け取るにはPHPが必要です。
どうすればいいですか?
へ
変更を送信しますjsonとraw jsonを送信します。その後、PHPでuse file_get_contents( "php:// input")を使ってデータを取得できます –
これはPHPではありません。実際のリクエストを確認してください - 空の配列がありません –