PHP で Ajax からの JSON データをデコードする
Ajax リクエストから PHP スクリプトに JSON データを送信しようとすると、データが適切に受信または解析されない問題。これを解決するための一般的な質問は、Ajax から JSON データを効果的に送信し、PHP でデコードする方法です。
解決策
1. Content-Type ヘッダーの削除
Ajax リクエストで、contentType ヘッダーを削除します:
$.ajax({ type: "POST", dataType: "json", url: "add_cart.php", data: {myData:dataString} });
2.直接変数割り当てを使用する
PHP では、json_decode を使用せずに $_POST から JSON データに直接アクセスします:
if(isset($_POST['myData'])){ $obj = $_POST['myData']; //some php operation }
Reason
元のコードが機能しなかった理由は、contentType ヘッダーが application/json に設定されていたためです。これは、送信されるデータが JSON 形式であることを PHP に示しましたが、実際はそうではありません。データは実際には、JSON 文字列を含む通常の POST クエリです。
contentType ヘッダーを削除すると、データが通常の POST クエリとして送信され、PHP が文字列変換を自動的に処理できるようになります。
以上がPHP で Ajax から JSON データをデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。