博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJS中的$http.post与jQuery.post的区别
阅读量:6348 次
发布时间:2019-06-22

本文共 804 字,大约阅读时间需要 2 分钟。

很多时候我们需要用ajax提交post数据,angularjs与jq类似,也有封装好的post。

但是jQuery的post明显比angularjs的要简单一些,人性化一些。

AngularJS:

1
2
3
4
$http.post(
'do-submit.php'
,myData)
.success(
function
(){
    
// some code
});

 

jQuery:

1
2
3
$.post(
'do-submit.php'
, myData, 
function
() {
    
// some code
});

 

看起来没什么区别吧?可是,用angularjs的$http提交的数据,在php服务器端却无法通过$_REQUEST/$_POST获取到,而需要用:

1
$params 
= json_decode(
file_get_contents
(
'php://input'
),true);

 

来获取。什么原因呢?

这是因为两者的post对header的处理有所不同……jQuery会把作为JSON对象的myData序列化,例如:

1
2
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://my.oschina.net/tommyfok/blog/287748

 

转载地址:http://wgpla.baihongyu.com/

你可能感兴趣的文章
2015年物联网行业:巨头展开专利大战
查看>>
以自动化测试撬动遗留系统
查看>>
网络安全初创公司存活之道
查看>>
《图解CSS3:核心技术与案例实战》——1.2节浏览器对CSS3的支持状况
查看>>
《Android应用开发》——2.4节应用类
查看>>
继 One Step 后,锤子科技 Big Bang 正式开源
查看>>
《淘宝店铺经营管理一册通》一一1.4 商品发布
查看>>
《数据科学:R语言实现》——2.5 使用Excel文件
查看>>
《淘宝店铺设计装修一册通》一2.5 抠图工具的简单运用
查看>>
《音乐达人秀:Adobe Audition实战200例》——实例4 收音机音乐节目转录到电脑里...
查看>>
《JavaScript应用程序设计》一一3.1 过时的类继承
查看>>
千万PV是什么意思?
查看>>
Amazon 推出 API 网关使用计划
查看>>
互联网流量超出路由器上限 或致全球断网
查看>>
《基于ArcGIS的Python编程秘笈(第2版)》——2.5 限制图层列表
查看>>
GNOME 地图 3.20 加入更多新特性 可用性得到加强
查看>>
《代码整洁之道:程序员的职业素养》导读
查看>>
《计算复杂性:现代方法》——习题
查看>>
Mozilla 释出更新修复中间人攻击漏洞
查看>>
思科表态反对网络中立
查看>>