咸鱼开发修炼之路

AngularJs的$http请求服务

  $http是Angular的一个核心服务,它有利于浏览器通过XMLHttpRequest 对象或者 JSONP和远程HTTP服务器交互。$HTTP API是基于$q服务暴露的deferred/promise APIs,$http请求将返回一个promise对象。
04.jpg

使用:$http(config)

1
2
3
4
5
6
7
8
9
10
11
12
13
var req ={
method:'POST',
url:'url',
headers:{
'Content-Type': 'xxx'// your config”
},
data: {data: data} // your data”
}
$http(req).then(function(response){
//success
},function(response){
//failed
})

快捷使用方式:

  • $http.get
  • $http.head
  • $http.post
  • $http.put
  • $http.delete
  • $http.jsonp
  • $http.patch

config 配置

  • method:字符串,请求方法。
  • url:字符串,请求地址。
  • params:字符串或者对象,将使用paramserializer序列化并且作为GET请求的参数。
  • data:字符串或者对象,作为请求信息数据的数据。
  • headers:对象,字符串或者函数返回表示发送到服务器的HTTP请求头。如果函数的返回值为空,则headers则不发送。函数接受一个配置对象作为参数。
  • xsrfHeaderName:字符串,填充XSRF令牌的HTTP请求头名称。
  • xsrfCookieName:字符串,含有XSRF令牌cookie的名字。
  • transformRequest:函数/函数的数组。转换函数或者一个包含转换函数的数组。转换函数获取http请求体和请求头,并且返回他们的转换版(通常是序列化)。
  • transformResponse:函数/函数的数组。转换函数或者一个包含转换函数的数组。转换函数获取http响应体和响应头,并且返回他们的转换版(通常是序列化)。
  • paramSerializer:字符串或者返回字符串的函数。用于编写请求参数(指定为对象)的字符串表示形式的函数。如果指令是字符串,那么将被解释为通过$injector注册的函数,这意味着你能通过注册服务方式创建你自己的序列化程序。默认的序列化是$httpParamSerializer;或者你可以使用$httpParamSerializerJQLike。
  • cache:boolean,如果为true,一个默认的$http缓存将被作为请求的缓存,否则如果存在一个用$cacheFactory创建的缓存实例,则将用于缓存。
  • timeout:数值,毫秒,超时则让请求中止。
  • withCredentials:boolean,是否设置withcredentials flag的XHR对象。查看更多信息的凭据。
  • responseType:字符串,响应头类型。

response

  • data:字符串或对象。变换函数变换后的响应体。
  • status:数值,响应的http状态码。
  • headers:函数,响应头的getter函数。
  • config:对象,用于生成请求的配置对象。
  • statusText:字符串,响应的HTTP状态文本。

$http方法

  • get(url,[config]);
    url:请求地址。
    config:请求配置对象。
  • delete(url,[config]);
    url:请求地址。
    config:请求配置对象。
  • head(url,[config]);
    url:请求地址。
    config:请求配置对象。
  • jsonp(url,[config]);
    url:请求地址。
    config:请求配置对象。
  • post(url,data,[config]);
    url:请求地址。
    data:请求内容。
    config:请求配置对象。
  • put(url,data,[config]);
    url:请求地址。
    data:请求内容。
    config:请求配置对象。
  • patch(url,data,[config]);
    url:请求地址。
    data:请求内容。
    config:请求配置对象。

属性

  • pendingRequests
    当前正在等待的请求的配置对象数组。主要是为了用于调试目的。
  • defaults
    请求头配置默认属性。
    $HTTP服务将会给所有请求自动创建HTTP头。这个默认设置能完全的通过访问$httpProvider.defaults.headers配置对象配置。目前包含默认配置:
  • $httpProvider.defaults.headers.common //-- Accept:application/json,text/plain
  • $httpProvider.defaults.headers.post //-- Content-Type:application/json
  • $httpProvider.defaults.headers.put //-- Content-Type:application/json
    全局配置:
    $httpProvider.defaults.headers.post = {“my-header”:”value”}