对比分析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 相关文章推荐
使用js检测浏览器的实现代码
May 14 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
Jan 09 Javascript
js读取被点击次数的简单实例(从数据库中读取)
Mar 07 Javascript
jQuery提示效果代码分享
Nov 20 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
Jul 25 Javascript
Bootstrap源码解读按钮(5)
Dec 23 Javascript
简单实现IONIC购物车功能
Jan 10 Javascript
vue项目如何刷新当前页面的方法
May 18 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
Aug 09 Javascript
javaScript实现游戏倒计时功能
Nov 17 Javascript
layui树形菜单动态遍历的例子
Sep 23 Javascript
用JS写一个发布订阅模式
Nov 07 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
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
php你的验证码安全码?
2007/01/02 PHP
php上传文件常见问题总结
2015/02/03 PHP
老生常谈PHP面向对象之解释器模式
2017/05/17 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
jQuery位置选择器用法实例分析
2019/06/28 jQuery
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
vue实现扫码功能
2020/01/17 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
Python编程实现蚁群算法详解
2017/11/13 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
opencv实现简单人脸识别
2021/02/19 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
解除劳动合同协议书范本
2014/04/14 职场文书
大学生创业计划书怎么写
2014/09/15 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
护士求职自荐信
2015/03/25 职场文书
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL