AngularJS的ng Http Request与response格式转换方法


Posted in Javascript onNovember 07, 2016

本文实例讲述了AngularJS的ng Http Request与response格式转换方法。分享给大家供大家参考,具体如下:

angular作为Single Page Application推荐的交互方式当然是基于json的ajax调用。但今天要说的是当你不幸工作在一个遗留或者不可控制的服务上,而这服务是基于非json提交方式(或许是常规表单(form)提交,或者其他自定义数据格式),那么我们只能改变ng内部$http默认request/response格式转化方式。

所幸的是ng $http给我们提供了多种可用方式转化数据格式(下面demo将以form提交方式为例):

***对于部分单独的http request设置:

对于http ajax方式最后一个参数都是关于http的配置信息,其中包括一项transformRequest,我们可以利用transformRequest在ajax发送数据之前改变数据的格式,例如下边的demo:

$http.post("/url", {
   id: 1,
   name: "greengerong"
  }, {
   transformRequest: function(request) {
    return $.param(request);
  }
});

这里利用jQuery的$.param进行表单提交方式的格式转化,所以我们能够看见的request body 为:

id=1&name=greengerong

***对于整个app的http request设置:

如果我们需要对整个http的数据转化格式进行设置,那么可以选用在config阶段对$httpProvider默认行为进行设置:

angular.module("app", [])
.config(["$httpProvider", function($httpProvider) {
   $httpProvider.defaults.transformRequest = [
    function(request) {
     return $.param(request);
    }
   ];
  }
]);

这样我们就可以轻易的转化为form提交方式。

同样$http也为我们提供了transformResponse方式,我们也可以创建自己的response转化,比如json之前加入自定义前缀防止json array攻击等等。

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
Apr 14 Javascript
使用js如何实现全选与全不选
Dec 30 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
Apr 10 Javascript
jquery+php实现搜索框自动提示
Nov 28 Javascript
JavaScript替换当前页面的方法
Apr 03 Javascript
jquery插件ajaxupload实现文件上传操作
Dec 09 Javascript
JS禁止查看网页源代码的实现方法
Oct 12 Javascript
微信小程序组件 marquee实例详解
Jun 23 Javascript
vue v-model实现自定义样式多选与单选功能
Jul 05 Javascript
node.js之基础加密算法模块crypto详解
Sep 11 Javascript
bootstrap table表格插件之服务器端分页实例代码
Sep 12 Javascript
Js通过AES加密后PHP用Openssl解密的方法
Jul 12 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
Nov 07 #Javascript
AngularJS ng-template寄宿方式用法分析
Nov 07 #Javascript
easyui messager alert 三秒后自动关闭提示的实例
Nov 07 #Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
Nov 07 #Javascript
AngularJS 应用身份认证的技巧总结
Nov 07 #Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
Nov 07 #Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
Nov 07 #Javascript
You might like
PHP 类型转换函数intval
2009/06/20 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
jquery 无限级联菜单案例分享
2013/03/26 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
js前端导出Excel的方法
2017/11/01 Javascript
vue2.0实现前端星星评分功能组件实例代码
2018/02/12 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
台湾旅游网站:灿星旅游
2018/10/11 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
大专毕业生自我鉴定
2013/11/21 职场文书
工程造价与管理专业应届生求职信
2013/11/23 职场文书
出国留学计划书
2014/04/27 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
校园绿化美化方案
2014/06/08 职场文书
2015年售票员工作总结
2015/04/29 职场文书
论文评审意见
2015/06/05 职场文书
厉行节约工作总结
2015/08/12 职场文书
六年级数学教学反思
2016/02/16 职场文书
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python
python中的random模块和相关函数详解
2022/04/22 Python