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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-30 12:43:11126ブラウズ

Why Are My AngularJS POST Variables Undefined in My PHP Script?

AngularJS から送信された HTTP POST により PHP に未定義の POST 変数が生成される

この設定では、AngularJS アプリケーションは HTTP POST リクエストを PHP に送信しますスクリプトを作成しましたが、PHP スクリプトは「電子メール」の未定義の値を受け取り、 'password' POST パラメータ。

原因のデバッグ

問題は、AngularJS によって送信される Content-Type ヘッダーと PHP によって予期されるデータ形式の不一致にあります。 AngularJS はデフォルトの Content-Type ヘッダーとして application/json を使用しますが、PHP スクリプトはフォームエンコードされたデータを期待します。

解決策 1: PHP で Application/JSON を使用する

解決策の 1 つは、AngularJS の Content-Type ヘッダーを application/json に変更し、PHP のfile_get_contents("php://input") は、生のリクエスト本文を取得します。その後、データを JSON から逆シリアル化できます。

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

解決策 2: フォーム エンコードされたデータを送信する

あるいは、フォーム エンコードされたデータを送信するように AngularJS を構成することもできます。 。これには、クエリ文字列を手動で構築するか、jQuery.serialize() を使用することが含まれます。次に、クエリ文字列を URL エンコードし、リクエスト データとして設定する必要があります。

$email = $_POST['email'];
$pass = $_POST['password'];

非推奨のメソッド

.success() メソッドと .error() メソッドは使用されないことに注意してください。コード内で言及されているものは非推奨です。代わりに .then() を使用してください。

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

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