首頁 >後端開發 >php教程 >angularJS裡的$httppost傳遞資料到php接收問題 angularjs 2.0 angularjs 影片教學 angularjs directive

angularJS裡的$httppost傳遞資料到php接收問題 angularjs 2.0 angularjs 影片教學 angularjs directive

WBOY
WBOY原創
2016-07-29 08:53:58939瀏覽

最近學習angularJS,發現使用其自身的$http.post向後台php發送數據,php接收不到的問題。例如:

$http.post("php/getRoleRight.php", {rr:$scope.currSelect}).success(function(response) { ·· });
 php使用
$_POST['rr']
接收不到傳過來的參數。
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

上網看了一下加上自己的實驗,有兩種方式解決這個問題:

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的值了。

好了,大功告成。

以上就介紹了angularJS裡的$httppost傳輸資料到php接收問題,包含了angularjs方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn