jQuery の $.ajax 関数を使用すると、JSON として送信されたデータが自動的に送信されるという予期せぬ動作が発生することがよくあります。クエリ文字列に変換されます。アプリケーションが実際の JSON オブジェクトの受信に依存している場合、これは問題となる可能性があります。
最初の直感は、次のように設定することです。 「dataType」属性を「json」に設定して、予期されるデータ型を指定します。ただし、これはサーバーから予期されるデータ型を指定するだけであり、サーバーに送信するデータ型を指定するものではありません。
解決するにはこの問題では、JSON.stringify を使用して JavaScript オブジェクトを JSON 文字列にシリアル化する必要があります。さらに、送信されるデータが JSON であることをサーバーに指示するには、'contentType' プロパティを 'application/json' に設定する必要があります。
$.ajax({ url: url, type: "POST", data: JSON.stringify(data), contentType: "application/json", complete: callback });
最新のブラウザはネイティブ JSON 機能を提供します。ただし、レガシー サポートが必要な場合は、json2 ライブラリを使用して古い環境の JSON 動作をエミュレートできます。
以上がクエリ文字列変換を行わずに jQuery の $.ajax を使用して JSON データを送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。