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攻击等等。
Ng Http Request/response格式转换的更多相关文章
- Cer Crt Pem Pfx 证书格式转换
1.从pfx格式的证书提取出密钥和证书set OPENSSL_CONF=openssl.cnfopenssl pkcs12 -in my.pfx -nodes -out server.pemopens ...
- json格式转换(json,csjon)(天气预报)
json格式数据默认为string,可以使用eval()函数或者json模块将其转换为dict.标准Json字符串必须使用双引号(")而不能使用单引号('),否则从字符串转换成dict类型会 ...
- SpringMVC+MyBatis 返回时间格式转换的解决方案
Spring MVC 4.X ResponseBody 日期类型Json 处理 摘自http://tramp-zzy.iteye.com/blog/2090330 2014-07-10 方法一:全局 ...
- C# MVC 用户登录状态判断 【C#】list 去重(转载) js 日期格式转换(转载) C#日期转换(转载) Nullable<System.DateTime>日期格式转换 (转载) Asp.Net MVC中Action跳转(转载)
C# MVC 用户登录状态判断 来源:https://www.cnblogs.com/cherryzhou/p/4978342.html 在Filters文件夹下添加一个类Authenticati ...
- request response
request 和 response 这两个对象是出现在service方法中.service方法是用来接收请求处理请求,完成响应的. 接受请求指的就是request对象 完成响应指的就 ...
- 【转】对Django框架架构和Request/Response处理流程的分析
本文转载于疯狂的蚂蚁. 一. 处理过程的核心概念 如下图所示django的总览图,整体上把握以下django的组成: 核心在于中间件middleware,django所有的请求.返回都由中间件来完成. ...
- JavaWeb学习笔记四 request&response
HttpServletResponse 我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应res ...
- day06 Request Response
rw 读写模板的设置 day05 Request Response 1. HttpServletResponse 简介 1.1 Response 的 OutputStream 输出中文的问题 1.2 ...
- ASP.NET Core 请求/查询/响应参数格式转换(下划线命名)
业务场景: 在 ASP.NET Core 项目中,所有的代码都是骆驼命名,比如userName, UserName,但对于 WebApi 项目来说,因为业务需要,一些请求.查询和响应参数的格式需要转换 ...
随机推荐
- Parallel 试验
using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Di ...
- PIL show() 报错
将 PIL 安装目录下的 ImageShow.py 文件的第 99 行:(我的 Python 安装在 D:\Program Files\python 2.6,那 ImageShow.py 文件在: ...
- 添加Properties取值和枚举取值
<!--配置文件--><property name="ppp"> <props> <prop key="11"> ...
- mac 10.11.6,Xcode8下,ruby2.3安装,Cocoapods安装~
适用环境 mac: 10.11.6 Xcode:8.1 命令执行步骤(安装ruby2.3前准备工作) 查看ruby更新源 gem sources -L 删除默认官方或者淘宝,新增 https://g ...
- 【Mail】邮件的基础知识和原理
电子邮件概念 电子邮件是-种用电子手段提供信息交换的通信方式,是互联网应用最广的服务.通过网络的电子邮件系统,用户可以以非常低廉的价格(不管发送到哪里,都只需负担网费).非常快速的方式(几秒钟之内可以 ...
- javascript鸭式辩型法实现接口
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- JS 前端格式化JSON字符串工具
JSON格式化工具,简易实现.作为技术宅,直接上代码,供大家使用.前提:一定要引入jquery哦. <!DOCTYPE html> <html lang="en" ...
- Services (服务)
*/ .hljs { display: block; padding: 0.5em; background: #F0F0F0; } .hljs, .hljs-subst, .hljs-tag .hlj ...
- Postman-进阶
Postman-简单使用 Postman-进阶使用 Postman-CI集成Jenkins 管理请求 保存请求-添加“打开百度首页请求” 设置请求方式为Get,地址为www.baidu.com.点击右 ...
- Tomcat settings should be set in Tomcat Preference Page解决
选择tomcat version,然户找到该tomcat的主目录,输入在tomcat home,下面的参数会自动配置,点击apply. 然后在左边选择advanced,同样把tomcat的主目录复制在 ...