ホームページ  >  記事  >  バックエンド開発  >  angularJSの$httppostは問題を受信するためにphpにデータを送信します angularjs 2.0 angularjsビデオチュートリアル angularjsディレクティブ

angularJSの$httppostは問題を受信するためにphpにデータを送信します angularjs 2.0 angularjsビデオチュートリアル angularjsディレクティブ

WBOY
WBOYオリジナル
2016-07-29 08:53:58912ブラウズ

私は最近 angularJS を学び、独自の $http.post を使用してバックグラウンドの PHP にデータを送信すると、PHP がそれを受信できないという問題を発見しました。例:

$http.post("php/getRoleRight.php", {rr:$scope.currSelect}).success(function(response) { ·· });
$_POST['rr']
を使用する場合、PHP は渡されたパラメーターを受け取ることができません。
angular,angularjs 教程,angularjs下载,angularjs官网,angularjs中文社区,angularjs api,angularjs 2.0,angularjs 视频教程,angularjs directive
firebugを開いて転送が成功したことが分かりました。 長い間苦労した後、転送の形式がjQueryの$.post()メソッド、$などの通常の転送形式とは異なることがわかりました。 http.post()はjson形式で送信されますが、$.post()はフォームパラメータの形式で送信され、PHPの$.POST[]はフロントから送信されたデータを後者の形式で受信することを想定しているため、 json で送信されたデータを読み取ることができません。

angular,angularjs 教程,angularjs下载,angularjs官网,angularjs中文社区,angularjs api,angularjs 2.0,angularjs 视频教程,angularjs directive

オンラインで調べて私自身の実験を行った結果、この問題を解決するには 2 つの方法があります:

1. 単純かつ大まかに、$.post() メソッドに直接変更して、背景はありますが、オンラインのより経験豊富なネチズンの一部は、これは angular を使用する本来の目的を損なう可能性があると述べました。

2. PHP コードを変更します

$postData = file_get_contents('php://input', true);
$obj=json_decode($postData);	
$query1 = "SELECT * FROM role_roleRight  WHERE roleId=$obj->rr";	
は、まず json 文字列を読み取り、それをオブジェクトに解析します。このようにして、渡されたパラメーター rr ​​の値を object 属性を使用して取得できます。

さて、これで完了です。

上記は、angularJS の $httppost がデータを受信するために php に送信する問題を紹介しています。angularjs の内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。

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