文档章节

AngularJS中的$http.post与jQuery.post的区别

tommyfok
 tommyfok
发布于 2014/07/06 17:44
字数 342
阅读 8.6W
收藏 19

很多时候我们需要用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/  (为了便于以后的管理,这是最好的办法)

可是由于时间关系,兄弟我可耻地采用了第2个方案。。。

© 著作权归作者所有

tommyfok
粉丝 23
博文 44
码字总数 13363
作品 0
佛山
程序员
私信 提问
加载中

评论(7)

joe-j
joe-j
giiwa 服务框架,提供一致的APIs: getString, getFile,自动封装不同请求对数据包装的不一致["GET", "POST", "multipart", file, application/json] 13
j
john2014
可耻的采用了第二种方案!0
五毛钱的饼
五毛钱的饼
79,thanks a lot
Rorschach_H
Rorschach_H
可耻的采用了第二种方案!
飘雨风
7979797979
tolazz
tolazz
thanks a lot
yamakasiluke
yamakasiluke
yes,that's ture!0
《AngularJS学习整理》系列分享专栏

《AngularJS学习整理》系列分享专栏 《AngularJS学习整理》已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/201748.html 文章 教你用AngularJS框架一行JS代码实现...

开元中国2015
2018/11/09
237
0
OSChina 技术专题之 AngularJS 更新版(201412)

Angular JS (Angular.JS) 是一组用来开发Web页面的框架、模板以及数据绑定和丰富UI组件。它支持整个开发进程,提供web应用的架构,无需进行手工DOM操作。 AngularJS很小,只有60K,兼容主流浏...

OSC编辑部
2014/10/17
1.1W
26
在 Angular 8 中,我们可以期待些什么

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 本文由葡萄城翻译并发布 --- Angular 作为一款优秀的前端框架,自诞生之日起,就致力于面向前...

葡萄城技术团队
2019/04/15
485
0
解决Angular CLI找不到模块"angular-devkit/build-angular"的问题

Angular CLI 是 Angular 客户端命令行工具,提供非常多的命令来简化 Angular 的开发。今天执行“ng serve”命令时,竟然报找不到模块"@angular-devkit/build-angular"的错误。 问题背景 执行...

waylau
2019/10/31
332
0
【前端】—聊聊我认识的Angular

前言 最近接触的项目前端用到了Angular框架,之前略有耳闻,从vue换到Angular,感觉东西差不多,还是要系统学习的,先来了解下。 正文 1、Angular 的发展 AngularJS 是一款来自Google的前端J...

zt15732625878
2018/05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

面试题 11:旋转数组的最小数字

题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋...

Oaki
26分钟前
50
0
Node.js基础:第二篇

第一章:Node.js模块化开发 1.1-JavaScript开发弊端 JavaScript在使用时存在两大问题 文件依赖 命名冲突。 1.2-模块化开发的好处 生活中的模块化 一台电脑由多个模块组成(显卡、内存、硬盘、...

IT原力比特
29分钟前
47
0
2019,那些属于飞桨的重要时刻

2019已经悄然落幕,在过去一年中,飞桨加速崛起,在产品性能上高效迭代,并屡次斩获多项大奖,其取得的成绩有目共睹,这也意味着飞桨正领衔中国深度学习框架迎来高光时刻。现在,让我们一起来...

飞桨PaddlePaddle
37分钟前
54
0
【剑指Offer】二叉树——二叉树镜像的变换

package cn.dzp.flyroc.offer;import java.util.Stack;public class MirrorDemo { /*题目描述:操作给定的二叉树,将其变换为源二叉树的镜像*/ /*二叉树的镜像定义:...

SeerRoc
42分钟前
46
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部