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 相关文章推荐
Jquery 表单取值赋值的一些基本操作
Oct 11 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
Sep 25 Javascript
javascript搜索框效果实现方法
May 14 Javascript
jquery衣服颜色选取插件效果代码分享
Aug 28 Javascript
jQuery实现可展开合拢的手风琴面板菜单
Sep 15 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
Dec 04 Javascript
JS作为值的函数用法示例
Jun 20 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
Jan 03 Javascript
浅谈 Vue v-model指令的实现原理
Jun 08 Javascript
基于JS实现网页中的选项卡(两种方法)
Jun 16 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
Apr 25 Javascript
Vue v-text指令简单使用方法示例
Sep 19 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
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
浅谈js的异步执行
2016/10/18 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
element ui分页多选,翻页记忆的实例
2019/09/03 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
JSONP解决JS跨域问题的实现
2020/05/25 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
python3中int(整型)的使用教程
2017/03/23 Python
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
Python中扩展包的安装方法详解
2017/06/14 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
Python实现元素等待代码实例
2019/11/11 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
Pyspark读取parquet数据过程解析
2020/03/27 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
电子商务毕业生求职信
2013/11/10 职场文书
编辑求职信样本
2013/12/16 职场文书
教育见习报告范文
2014/11/03 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
python urllib库的使用详解
2021/04/13 Python
php+laravel 扫码二维码签到功能
2021/05/15 PHP
详解MySQL连接挂死的原因
2021/05/18 MySQL