对比分析AngularJS中的$http.post与jQuery.post的区别


Posted in Javascript onFebruary 27, 2015

很多时候我们需要用ajax提交post数据,angularjs与jq类似,也有封装好的post。

但是jQuery的post明显比angularjs的要简单一些,人性化一些。

AngularJS:

$http.post('do-submit.php',myData)

.success(function(){

    // some code

});

jQuery:

$.post('do-submit.php', myData, function() {

    // some code

});

看起来没什么区别吧?可是,用angularjs的$http提交的数据,在php服务器端却无法通过$_REQUEST/$_POST获取到,而需要用:

$params = json_decode(file_get_contents('php://input'),true);

来获取。什么原因呢?

这是因为两者的post对header的处理有所不同……jQuery会把作为JSON对象的myData序列化,例如:

var myData = { a : 1, b : 2 };

// jQuery在post数据之前会把myData转换成字符串:"a=1&b=2"

而Angular不会。

解决方案是什么?

1.引入jquery,前提是目标用户不介意多加载一个几十K的脚本。(不推荐)

2.在服务器端(PHP)通过  $params = json_decode(file_get_contents('php://input'),true);   获取参数,小项目可以,大项目要一个一个改。(不推荐)

3.修改Angular的$httpProvider的默认处理:http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/  (为了便于以后的管理,这是最好的办法)

小伙伴们是否对AngularJS中的$http.post与jQuery.post的区别有了进一步的认识了呢,希望大家读完本文能够有所得。

Javascript 相关文章推荐
caller和callee的区别介绍及演示结果
Mar 10 Javascript
JavaScript事件委托技术实例分析
Feb 06 Javascript
javascript实现行拖动的方法
May 27 Javascript
浅谈JavaScript中运算符的优先级
Jul 07 Javascript
18个非常棒的jQuery代码片段
Nov 02 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 Javascript
详解JavaScript节流函数中的Throttle
Jul 16 Javascript
AngularJS基础 ng-copy 指令实例代码
Aug 01 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
Aug 03 Javascript
12 款 JS 代码测试必备工具(翻译)
Dec 13 Javascript
Vue2.0实现购物车功能
Jun 05 Javascript
vue.js父子组件通信动态绑定的实例
Sep 28 Javascript
JavaScript中Function详解
Feb 27 #Javascript
JS实现图片产生波纹一样flash效果的方法
Feb 27 #Javascript
js实现鼠标触发图片抖动效果的方法
Feb 27 #Javascript
javascript实现当前页导航激活的方法
Feb 27 #Javascript
jquery 根据name名获取元素的value值
Feb 27 #Javascript
jQuery使用元素属性attr赋值详解
Feb 27 #Javascript
jquery实现公告翻滚效果
Feb 27 #Javascript
You might like
PHP中for循环语句的几种变型
2007/03/16 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
用JS剩余字数计算的代码
2008/07/03 Javascript
基于jQuery的获取标签名的代码
2012/07/16 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
python 判断一个进程是否存在
2009/04/09 Python
Python标准库os.path包、glob包使用实例
2014/11/25 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
婚礼新郎父母答谢词
2014/01/16 职场文书
物理教学随笔感言
2014/02/22 职场文书
法定代表人授权委托书范文
2014/09/22 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
python实现双链表
2022/05/25 Python