我是这样提交表单的
$http({ headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, method: 'POST', url: url, data: { type: 1 } })
为什么我的服务器接到的会是这样的东西?
{ '{"type":1}': '' }
問題は解決しました 理由: デフォルトでは、jQuery は Content-Type: x-www-form-urlencoded とおなじみの foo=bar&baz=moe シリアル化を使用してデータを送信しますが、AngularJS は Content-Type: application/json と { "foo": "bar を使用してデータを送信します。 ", "baz": "moe" } JSONシリアル化
デフォルトでは、jQuery は Content-Type: x-www-form-urlencodedand と「foo=bar&baz=moe」のようなシーケンスを使用してデータを送信しますが、AngularJS は Content-Type: application/json と { "foo": "bar", "baz": "moe" } このような JSON シーケンス。
ソリューション
おそらく jquery の使用に慣れているかもしれません jqueryはquery_string操作をカプセル化します このコードを angular に追加し、サンプル名を変更するだけです
1. angularjs の公式ドキュメントを読んで、$http のヘッダーが少し異なるようです。 2. fiddler ツールをダウンロードし、リクエスト ヘッダーやパラメーターなどの情報を表示します。
サーバーは $_REQUEST/$_POST を直接使用して取得することはできませんが、次のものを使用する必要があります: $params = json_decode(file_get_contents('php://input'),true);
投稿データを取得するには
問題は解決しました
理由:
デフォルトでは、jQuery は Content-Type: x-www-form-urlencoded とおなじみの foo=bar&baz=moe シリアル化を使用してデータを送信しますが、AngularJS は Content-Type: application/json と { "foo": "bar を使用してデータを送信します。 ", "baz": "moe" } JSONシリアル化
デフォルトでは、jQuery は Content-Type: x-www-form-urlencodedand と「foo=bar&baz=moe」のようなシーケンスを使用してデータを送信しますが、AngularJS は Content-Type: application/json と { "foo": "bar", "baz": "moe" } このような JSON シーケンス。
ソリューション
リーリーおそらく jquery の使用に慣れているかもしれません
リーリーjqueryはquery_string操作をカプセル化します
このコードを angular に追加し、サンプル名を変更するだけです
1. angularjs の公式ドキュメントを読んで、$http のヘッダーが少し異なるようです。
2. fiddler ツールをダウンロードし、リクエスト ヘッダーやパラメーターなどの情報を表示します。
サーバーは $_REQUEST/$_POST を直接使用して取得することはできませんが、次のものを使用する必要があります:
$params = json_decode(file_get_contents('php://input'),true);
投稿データを取得するには