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 相关文章推荐
use jscript List Installed Software
Jun 11 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
Sep 02 Javascript
Iframe实现跨浏览器自适应高度解决方法
Sep 02 Javascript
jQuery中Ajax的load方法详解
Jan 14 Javascript
JS实现自动变化的导航菜单效果代码
Sep 09 Javascript
学习JavaScript设计模式之观察者模式
Apr 22 Javascript
jQuery基本过滤选择器用法示例
Sep 09 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
Sep 14 Javascript
JS限制条件补全问题实例分析
Dec 16 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
Aug 25 Javascript
Element Notification通知的实现示例
Jul 27 Javascript
Javascript使用integrity属性进行安全验证
Nov 07 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
德劲1107的电路分析与打磨
2021/03/02 无线电
PHP中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
基于header的一些常用指令详解
2013/06/06 PHP
跟我学Laravel之安装Laravel
2014/10/15 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
javascript中的try catch异常捕获机制用法分析
2016/12/14 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
python自动格式化json文件的方法
2015/03/11 Python
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
python常用函数详解
2016/09/13 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
客服专员岗位职责范本
2013/11/29 职场文书
先进个人获奖感言
2014/01/24 职场文书
护士长竞聘书
2014/03/31 职场文书
法定代表人证明书
2014/11/28 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
地雷战观后感
2015/06/09 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android