ホームページ > ウェブフロントエンド > jsチュートリアル > PHP スクリプトで AngularJS HTTP POST 変数が定義されていないのはなぜですか?

PHP スクリプトで AngularJS HTTP POST 変数が定義されていないのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-02 04:43:13
オリジナル
744 人が閲覧しました

Why are my AngularJS HTTP POST variables undefined in my PHP script?

AngularJS HTTP Post to PHP: 未定義変数の対処

AngularJS コードで、PHP スクリプトにポストされたデータが未定義のように見えるという問題が発生しています。これを解決するには、詳細を調べる必要があります。

AngularJS コードでは、「application/x-www-form-urlencoded」の Content-Type ヘッダーを持つ HTTP POST リクエストを定義しました。ただし、データはクエリ文字列としてフォーマットされていません。 PHP は $_POST に依存してフォームエンコードされたデータを受信します。これには、データをキーと値のペアとしてフォーマットする必要があります。

この問題を解決するには、2 つのオプションがあります:

オプション 1: JSON を使用する

AngularJS のデフォルトでは、「application/json」コンテンツ タイプが使用されます。 HTTPリクエストのヘッダー。これを活用するには、PHP で生の入力を読み取り、JSON を逆シリアル化します。これは、次の PHP コードを使用して実行できます。

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
$pass = $request->password;
ログイン後にコピー

オプション 2: クエリ文字列を手動でフォーマットする

$_POST を使用したい場合は、クエリ文字列を手動でフォーマットできます。データをクエリ文字列として使用します。 URL エンコードされていることを確認してください。 JavaScript では、次のコマンドを使用してこれを実現できます。

let data = "email=" + encodeURIComponent($scope.email) + "&password=" + encodeURIComponent($scope.password);
ログイン後にコピー

HTTP リクエスト データを、現在の形式ではなく、この形式のクエリ文字列に設定します。これらの調整により、AngularJS HTTP POST リクエストはデータを PHP スクリプトに正しく送信し、未定義変数の問題を解決します。

以上がPHP スクリプトで AngularJS HTTP POST 変数が定義されていないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート