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

online demo;

***对于整个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攻击等等。

作者:破  狼 
出处:http://www.cnblogs.com/whitewolf/ 
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。该文章也同时发布在我的独立博客中-个人独立博客博客园--破狼51CTO--破狼。http://www.cnblogs.com/whitewolf/p/3952820.html

时间: 2024-10-06 02:10:54

Ng Http Request/response格式转换的相关文章

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

本文实例讲述了AngularJS的ng Http Request与response格式转换方法.分享给大家供大家参考,具体如下: angular作为Single Page Application推荐的交互方式当然是基于json的ajax调用.但今天要说的是当你不幸工作在一个遗留或者不可控制的服务上,而这服务是基于非json提交方式(或许是常规表单(form)提交,或者其他自定义数据格式),那么我们只能改变ng内部$http默认request/response格式转化方式. 所幸的是ng $htt

date和string转换-格式转换问题date 麻烦大家解释的详细一点,应该怎么改才能没错误 !

问题描述 格式转换问题date 麻烦大家解释的详细一点,应该怎么改才能没错误 ! 这是错误提示:HTTP Status 500 - java.lang.IllegalArgumentException: Cannot format given Object as a Date type Exception report message java.lang.IllegalArgumentException: Cannot format given Object as a Date descript

php 日期格式转换:php日期格式转换总结

php日期格式转换总结<?php//将当前时间转換成yyyy-mm-dd格式串,再转换成日期格式,绕了一圈哈echo strtotime(date('Y-m-d',time()).' 00:00:00');//将GNU 日期输入格式的字符转换成时间echo strtotime('now');//标准的字符串转换成时间$t = '2012-9-10 15:18:06';$time = strtotime($t);//将时间转换成日期字符yyyymmdd,再转换成整型格式$d = intval(da

dos2unix格式转换之工具篇

1, 使用Eclipse格式转换: Eclipse转换有个局限,只能对特定文件类型进行转换. 1) 新 建项目以Unix格式: Windows à preferences: 2) 对已建项目: a. select the files or module; b. File à Convert Line Delmiters To: 2,Notepad++转换 本文出自 "小何贝贝的技 术空间" 博客,请务必保留此出处http://babyhe.blog.51cto.com/1104064/

dos2unix格式转换之VBScript脚本

Unix软件开发,一般情况下我们会在windows下使用工具进行开发测试,然后上传到Unix下(测试),但是通常情况下工具保存的是dos格式,上传上去后往往会出现一些问题(如ClearCase下下来后都增加了换行,Oracle存储过程.Unix Shell不能运行等),于是我们就需要将格式转换成unix格式再上传.这个vbscript脚本就是一个转换工具.当然,我们也可以使用Eclipse,Notepad++等工具进行转换. dos2unix.vbs This is a script for t

Word 2007表格简单计算和数字格式转换

在Word 2007中,我们可以很轻松地对表格中的数据进行一些简单计算,并把数据转换成我们所需要的格式. 一.数据计算 以图1所示表格为例,我们需要计算每个人的总和以及每季度的平均数. 首先将鼠标定位于第二行第六列交叉处(即F2单元格),此时在功能区会新增加"表格工具"工具栏,在其下方新增"设计"和"布局"选项卡.点击"布局"选项卡"数据"功能组中"公式"按钮,如图2所示. 在打开的&q

使用命令进行svg批量格式转换

抽时间试用了一下Gnome3,发现默认主题的图标超漂亮,如下图: 就下载了一套.结果打开一看,竟然全是SVG格式,虽然使用Adobe提供的SVG Viewer可以查看,但是只能一 个一个的看,不能批量浏览.费了很多时间查找SVG批量格式转换的软件,结果不是收费就是不能批量处理, 很是郁闷,最后没辙了,只好使用Linux提供的ImageMagick(现在ImageMagicK也有Windows版本,懒得装了). ImageMagick真是难以置信的强大,一条命令就可以搞定SVG到PNG格式的批量转

C#实现json格式转换成对象并更换key的方法

  本文实例讲述了C#实现json格式转换成对象并更换key的方法.分享给大家供大家参考.具体分析如下: 由于是不标准的序列化对象类型,因此你无法通过标准的反序列化类来实现,需要自定义一个序列化类或者简单点,直接自定义一个方法解析Json数据.解析后的数据用Dictionary来存放. ? 1 2 3 4 5 6 string str = "{"name": "甄嬛体","2012-05-04 14:59": "5724&qu

WPS表格教程:单元格数据的组合、拆分与格式转换

教程的核心内容是分列操作,将用四个实例向大家介绍在WPS表格(ET)中,如何将单元格中的数据组合.拆分(提取)和格式转换. 实例一:用公式或函数组合数据获取出生地址 1.用"&"号组合数据. 2.用函数(CONCATENATE)组合数据. 实例二:拆分考试号,获取学校.班级.学号信息. 城南.城北两校联合组织五六年级语文竞赛,学生成绩统计如下: 要将各校各班的成绩分类汇总,当然要先将各校各班的学生分开,打开ET实践一下吧! 一.数据分析. 学生的考试号由学校代码(cn,cb)班