ホームページ >バックエンド開発 >PHPチュートリアル >Angular HTTP POST 値が PHP で定義されていないのはなぜですか?それを修正するにはどうすればよいですか?

Angular HTTP POST 値が PHP で定義されていないのはなぜですか?それを修正するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-15 15:33:15396ブラウズ

Why are my Angular HTTP POST values undefined in PHP, and how can I fix it?

PHP への Angular HTTP POST: 未定義の POST 値の処理

AngularJS では、PHP エンドポイントに対して HTTP POST リクエストを実行すると、未定義の値が発生する場合がありますサーバー側の POST 値。これは、予想されるデータ形式と Angular アプリケーションによって送信される実際のデータとの間に不一致がある場合に発生する可能性があります。

この問題を解決するには、Content-Type ヘッダーが適切に設定されていることを確認することが重要です。デフォルトでは、AngularJS はこのヘッダーを「application/json」に設定します。ただし、フォーム エンコードされたデータを送信する場合は、これをオーバーライドする必要があります。

提供されたコードでは、次の行は Content-Type ヘッダーを「application/x-www-form-urlencoded;」に設定します。 charset=UTF-8":

$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';

ただし、これには、送信されるデータをフォームエンコード形式に一致するように変更する必要があります。データをオブジェクトとして送信する代わりに、クエリ文字列に変換する必要があります。これは、jQuery.serialize() を使用するか、encodeURIComponent() を使用してクエリ文字列を手動で構築することで実行できます。

あるいは、PHP の $_POST 機能を使用したい場合は、デフォルトのヘッダー設定を保持し、リクエスト本文から生の入力を読み取り、JSON をデコードするための PHP コード。これは、次のコードで実現できます:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
$pass = $request->password;

データ形式とヘッダー設定を調整することで、POST 値が PHP 側で正しく受信されることを確認できます。

以上がAngular HTTP POST 値が PHP で定義されていないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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