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 相关文章推荐
JavaScript 类似flash效果的立体图片浏览器
Feb 08 Javascript
jquery 年会抽奖程序
Dec 22 Javascript
使用Jquery实现每日签到功能
Apr 03 Javascript
JQuery插件jcarousellite的参数中文说明
May 11 Javascript
每天一篇javascript学习小结(Boolean对象)
Nov 12 Javascript
JavaScript实现的SHA-1加密算法完整实例
Feb 02 Javascript
Node.js之readline模块的使用详解
Mar 25 Javascript
JS实现checkbox互斥(单选)功能示例
May 04 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
Aug 04 Javascript
vue总线机制(bus)知识点详解
May 10 Javascript
JavaScript类的继承多种实现方法
May 30 Javascript
在elementui中Notification组件添加点击事件实例
Nov 11 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 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
php文件上传简单实现方法
2015/01/24 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
一个简单的js动画效果代码
2010/07/20 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
JS实现简易刻度时钟示例代码
2017/03/11 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
JavaScript实现一个带AI的井字棋游戏源码
2018/05/21 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
Fenty Beauty官网:蕾哈娜创立的美妆品牌
2021/01/07 全球购物
如何在Cookie里面保存Unicode和国际化字符
2013/05/25 面试题
医院护理人员的自我评价分享
2013/10/04 职场文书
博士生入学考试推荐信
2013/11/17 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
企业愿景口号
2015/12/25 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书