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攻击等等。

时间: 2024-10-08 23:11:27

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

request&response

HttpServletRequest&HttpServletResponse. web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象和代表响应的response对象.如果要获取客户机提交的数据,只需要request对象,要想客户机输出数据,只需要response对象. 一.Response    1.Resonse的继承结构:            ServletResponse--HttpServletResponse    2.Response

常用的证书格式转换

1.从pfx格式的证书提取出密钥和证书set OPENSSL_CONF=openssl.cnfopenssl pkcs12 -in my.pfx -nodes -out server.pemopenssl rsa -in server.pem -out server.key openssl x509 -in server.pem -out server.crtPEM格式的证书与DER格式的证书的转换openssl x509 -in cert.pem -inform PEM -out cert.d

常见的数字证书格式与格式转换

常见的数字证书格式 CER后缀的证书文件有两种编码:第一种是DER二进制编码,第二种是:ASE64编码(也就是.pem)  p7b一般是证书链,里面包括1个到多个证书  pfx是指以pkcs#12格式存储证书的公钥和相应私钥. 在Security编程中,有几种典型的密码交换信息文件格式:  DER-encoded certificate: .cer, .crt  PEM-encoded message: .pem  PKCS#12 Personal Information Exchange: .

Cer Crt Pem Pfx 证书格式转换

1.从pfx格式的证书提取出密钥和证书set OPENSSL_CONF=openssl.cnfopenssl pkcs12 -in my.pfx -nodes -out server.pemopenssl rsa -in server.pem -out server.key openssl x509 -in server.pem -out server.crtPEM格式的证书与DER格式的证书的转换openssl x509 -in cert.pem -inform PEM -out cert.d

【报文】理解HTTP协议的Request/Response(请求响应)模型

[报文]理解HTTP协议的Request/Response(请求响应)模型 系列目录 [简介]"请求/响应"模型 http://www.cnblogs.com/engraver-lxw/p/7550514.html [原理]理解HTTP协议的Request/Response(请求响应)模型 http://www.cnblogs.com/engraver-lxw/p/7550691.html [报文]理解HTTP协议的Request/Response(请求响应)模型--当前 http:/

request response 区别

request:有关于客户端请求的信息,都可以由它来取得,例如请求标头.请求方法.请求参数.使用者IP等等信息.response:有关于对客户端请求之响应,可以利用它来设定一些要响应的讯息,例如标题信息.响应状态码等. response: 属于重定向请求: 其地址栏的URL会改变: 会向服务器发送两次请求: sendRedirect用法:       response.sendRedirect("跳转页面路径或需要执行的操作路径");       不保持request中设置属性,也就是

【转】对Django框架架构和Request/Response处理流程的分析

本文转载于疯狂的蚂蚁. 一. 处理过程的核心概念 如下图所示django的总览图,整体上把握以下django的组成: 核心在于中间件middleware,django所有的请求.返回都由中间件来完成. 中间件,就是处理HTTP的request和response的,类似插件,比如有Request中间件.view中间件.response中间件.exception中间件等,Middleware都需要在 "project/settings.py" 中 MIDDLEWARE_CLASSES 的定

json格式转换

json数据转换 import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; impo

JavaWeb学习笔记四 request&response

HttpServletResponse 我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应response.service方法中的response的类型是ServletResponse,而doGet/doPost方法的response的类型是HttpServletResponse,HttpServletResponse是ServletResponse的子接口,功能和方法更加强大. respon