对比分析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 相关文章推荐
javascript实现的距离现在多长时间后的一个格式化的日期
Oct 29 Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
js 鼠标移动显示图片的简单实例
Dec 25 Javascript
返回上一页并自动刷新的JavaScript代码
Feb 19 Javascript
jquery实现多行文字图片滚动效果示例代码
Oct 10 Javascript
js数组常见操作及数组与字符串相互转化实例详解
Nov 10 Javascript
深入浅出ES6之let和const命令
Aug 25 Javascript
详解javascript 正则表达式之分组与前瞻匹配
May 30 Javascript
QRCode.js二维码生成并能长按识别
Oct 16 Javascript
JS实现求5的阶乘示例
Jan 21 Javascript
详解js根据百度地图提供经纬度计算两点距离
May 13 Javascript
vue 父组件中调用子组件函数的方法
Jun 06 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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
php抽奖小程序的实现代码
2013/06/18 PHP
PHP实现简易图形计算器
2020/08/28 PHP
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
vue 路由子组件created和mounted不起作用的解决方法
2019/11/05 Javascript
vue.config.js中配置Vue的路径别名的方法
2020/02/11 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
Python压缩和解压缩zip文件
2015/02/14 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
python调用有道智云API实现文件批量翻译
2020/10/10 Python
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
2013英文求职信模板范文
2013/11/15 职场文书
宿舍违规检讨书
2014/01/12 职场文书
单位绩效考核方案
2014/05/11 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
清明节随笔
2015/08/15 职场文书
新入职员工工作总结
2015/10/15 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers