ホームページ >バックエンド開発 >PHPチュートリアル >Axios POST パラメータが $_POST にないのはなぜですか: 隠されたコンテンツ タイプの問題?

Axios POST パラメータが $_POST にないのはなぜですか: 隠されたコンテンツ タイプの問題?

DDD
DDDオリジナル
2024-10-23 00:09:30944ブラウズ

Why Are Axios POST Parameters Missing in $_POST: The Hidden Content-Type Issue?

Axios POST パラメータが $_POST に表示されません?隠れたコンテンツ タイプの問題

Axios を使用してデータを投稿する場合、コンテンツ タイプの影響を理解することが不可欠です。デフォルトでは、Axios は JavaScript オブジェクトを JSON としてシリアル化します。これは、サーバー側の $_POST 配列と互換性がない可能性があります。

$_POST でパラメーターにアクセスできるようにするには、適切なコンテンツ タイプを指定する必要があります。あなたのリクエスト。 PHP ドキュメントによると、サポートされているコンテンツ タイプは「application/x-www-form-urlencoded」と「multipart/form-data」の 2 つだけです。

解決策: コンテンツ タイプの指定

この問題を解決するには、「Content-Type」ヘッダーを明示的に「application/x-www-form-urlencoded」に設定します。これは、$_POST と互換性のある形式でデータをエンコードするように Axios に指示します。

<code class="javascript">axios({
    method: 'post',
    url,
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    data: {
        json,
        type,
    }   
})  </code>

追加の代替手段

コンテンツ タイプを変更したくない場合は、 、JSON 入力を処理するように PHP コードを変更できます。ガイダンスについては、次の Stack Overflow の回答を参照してください: [https://stackoverflow.com/questions/6787388/receiving-json-objects-as-post-parameters-in-php](https://stackoverflow.com/questions/) 6787388/receiving-json-objects-as-post-parameters-in-php)

以上がAxios POST パラメータが $_POST にないのはなぜですか: 隠されたコンテンツ タイプの問題?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。