对比分析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笔记 String类replace函数的一些事
Sep 22 Javascript
js 控制页面跳转的5种方法
Sep 09 Javascript
jquery实现多行文字图片滚动效果示例代码
Oct 10 Javascript
如何实现移动端浏览器不显示 pc 端的广告
Oct 15 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
May 16 Javascript
js实现精确到毫秒的倒计时效果
Aug 05 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
Jan 19 Javascript
vue-cli如何添加less 以及sass
Jul 06 Javascript
JavaScript Date对象应用实例分享
Oct 30 Javascript
vue页面切换项目实现转场动画的方法
Nov 12 Javascript
js实现一款简单踩白块小游戏(曾经很火)
Dec 02 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
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
JS动态增加删除UL节点LI及相关内容示例
2014/05/21 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
js改变Iframe中Src的方法
2015/05/05 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
使用vant的地域控件追加全部选项
2020/11/03 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
python的urllib模块显示下载进度示例
2014/01/17 Python
Python实现简单的语音识别系统
2017/12/13 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
基于多进程中APScheduler重复运行的解决方法
2019/07/22 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
英语老师推荐信
2014/02/26 职场文书
物业总经理岗位职责
2014/02/28 职场文书
理财投资建议书
2014/03/12 职场文书
县级文明单位申报材料
2014/05/23 职场文书
2014年班级工作总结
2014/11/14 职场文书
终止劳动合同通知书
2015/04/16 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
廉政承诺书2015
2015/04/28 职场文书