对比分析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中的call实现继承
Jan 22 Javascript
javascript 计算两个整数的百分比值
Dec 26 Javascript
js用Date对象的setDate()函数对日期进行加减操作
Sep 18 Javascript
项目中常用的JS方法整理
Jan 30 Javascript
html+js+highcharts绘制圆饼图表的简单实例
Aug 04 Javascript
详解vee-validate的使用个人小结
Jun 07 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
Feb 22 Javascript
React之PureComponent的使用作用
Jul 10 Javascript
在vue项目中集成graphql(vue-ApolloClient)
Sep 08 Javascript
封装微信小程序http拦截器过程解析
Aug 13 Javascript
微信小程序返回上一页传参并刷新过程解析
Dec 13 Javascript
javascript浅层克隆、深度克隆对比及实例解析
Feb 09 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
Terran魔法科技
2020/03/14 星际争霸
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
php获取字段名示例分享
2014/03/03 PHP
PHP递归创建多级目录
2015/11/05 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
Python中subprocess模块用法实例详解
2015/05/20 Python
Python+微信接口实现运维报警
2016/08/27 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
2018/04/17 Python
python字符串下标与切片及使用方法
2020/02/13 Python
python使用建议技巧分享(三)
2020/08/18 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
小学教师节活动方案
2014/01/31 职场文书
环保倡议书300字
2014/05/15 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
党支部三会一课计划
2014/09/24 职场文书
2014年司法局工作总结
2014/12/11 职场文书
社区艾滋病宣传活动总结
2015/05/07 职场文书
圣诞晚会主持词
2015/07/01 职场文书
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers