angularJS里的$http.post传数据到php接收问题
2016-04-12 13:45
471 查看
最近学习angularJS,发现使用其自身的$http.post向后台php发送数据,php接收不到的问题。比如:
打开firebug发现其实传成功了,折腾了好半天才发现,它只不过传输的格式与普通的传输格式比如jQuery里的$.post()方法传输的格式不同,$http.post()是以json格式传输,而$.post()是以表单参数形式传输,而php的$.POST[]是期待以后者的形式接收前台传输过来的数据的,因此读取不到json传的数据。
上网看了一下加上自己的实验,有两种方式解决这个问题:
1.简单粗暴的直接改成$.post()方法,这样后台不用作任何修改,但是网上一些比较有经验的网友称这样可能违背使用angular的初衷。
2.修改php代码
好了,大功告成。
$http.post("php/getRoleRight.php", {rr:$scope.currSelect}).success(function(response) { ·· });php使用
$_POST['rr']接收不到传过来的参数。
打开firebug发现其实传成功了,折腾了好半天才发现,它只不过传输的格式与普通的传输格式比如jQuery里的$.post()方法传输的格式不同,$http.post()是以json格式传输,而$.post()是以表单参数形式传输,而php的$.POST[]是期待以后者的形式接收前台传输过来的数据的,因此读取不到json传的数据。
上网看了一下加上自己的实验,有两种方式解决这个问题:
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的值了。
好了,大功告成。
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- XML 与 JSON 优劣对比
- Php Installing An Expansion
- php7 读取php.ini[4]
- VBA将excel数据表生成JSON文件
- newtonsoft.json解析天气数据出错解决方法
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项