对比分析AngularJS中的$http.post与jQuery.post的区别  更新时间:2015年02月27日 09:47:22   投稿:hebedich   这篇文章主要给大家对比分析AngularJS中的$http.post与jQuery.post的区别,十分的详细,是篇非常不错的文章,这里推荐给小伙伴们。 很多时候我们需要用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的区别有了进一步的认识了呢,希望大家读完本文能够有所得。 您可能感兴趣的文章: 解决angular的$http.post()提交数据时后台接收不到参数值问题的方法 Angularjs中$http以post请求通过消息体传递参数的实现方法 后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法 AngularJS下$http服务Post方法传递json参数的实例 AngularJS $http模块POST请求实现 AngularJS $http post 传递参数数据的方法 angularJS 发起$http.post和$http.get请求的实现方法 AngularJS封装$http.post()实例详解 深入理解Angularjs中$http.post与$.post Angular利用HTTP POST下载流文件的步骤记录 AngularJS $http.post jQuery.post 相关文章 angular8和ngrx8结合使用的步骤介绍 这篇文章主要给大家介绍了关于angular8和ngrx8结合使用的详细步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用angular8具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 2019-12-12 在Angular中使用JWT认证方法示例 这篇文章主要介绍了在Angular中使用JWT认证方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 2018-09-09 AngularJS 模块详解及简单实例 本文主要介绍AngularJS 模块,这里帮大家整理了相关资料,详细介绍了AngularJS的基础知识,有需要的朋友可以参考下 2016-07-07 详解Angular CLI + Electron 开发环境搭建 本篇文章主要介绍了Angular CLI + Electron 开发环境搭建,具有一定的参考价值,有兴趣的可以了解一下 2017-07-07 Angular.js去除页面中显示的空行方法示例 这篇文章主要介绍了Angular.js去除页面中显示的空行方法,文中给出了详细的示例代码供大家参考学习,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。 2017-03-03 angularJS实现不同视图同步刷新详解 今天小编就为大家分享一篇angularJS实现不同视图同步刷新详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 2018-10-10 Angularjs过滤器使用详解 AngularJS提供了过滤器来对输入输出数据格式化。这篇文章主要介绍了Angularjs过滤器使用的相关资料,需要的朋友可以参考下 2016-05-05 ui-router中使用ocLazyLoad和resolve的具体方法 这篇文章主要介绍了ui-router中使用ocLazyLoad和resolve的具体方法,详细的介绍了ocLazyLoad和resolve的具体用法,非常具有实用价值,需要的朋友可以参考下 2017-10-10 Angular2之二级路由详解 今天小编就为大家分享一篇Angular2之二级路由详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 2018-08-08 发布Angular应用至生产环境的方法 这篇文章主要介绍了发布Angular应用至生产环境的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 2018-12-12 最新评论

很多时候我们需要用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的区别有了进一步的认识了呢,希望大家读完本文能够有所得。

您可能感兴趣的文章:

  • 解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
  • Angularjs中$http以post请求通过消息体传递参数的实现方法
  • 后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
  • AngularJS下$http服务Post方法传递json参数的实例
  • AngularJS $http模块POST请求实现
  • AngularJS $http post 传递参数数据的方法
  • angularJS 发起$http.post和$http.get请求的实现方法
  • AngularJS封装$http.post()实例详解
  • 深入理解Angularjs中$http.post与$.post
  • Angular利用HTTP POST下载流文件的步骤记录
张贴在3