Something about http request in angularjs

来源:互联网 发布:精微工资软件下载 编辑:程序博客网 时间:2024/05/14 10:59

摘录自《angularJS权威教程》以及官网API


一、官网API的$http()用法



二、书上的详细介绍

当我们将$http当作函数来调用时,需要传入一个设置对象,用来说明如何构造XHR对象。

例如,可以像下面这样将$http当作函数来调用:$http({ 

    method: 'GET',    url: '/api/users.json',    params: {
        'username': 'auser'    }

});

设置对象可以包含以下键。

1. method(字符串)

绝对或相对的URL,是请求的目标。

3. params(字符串map或对象)

 这个键的值是一个字符串map或对象,会被转换成查询字符串追加在URL后面。如果值不是字符串,会被JSON序列化。

// 参数会转化为?name=ari的形式$http({

    params: {'name': 'ari'}})

4. data(字符串或对象)

这个对象中包含了将会被当作消息体发送给服务器的数据。通常在发送POST请求时使用。

AngularJS 1.3开始,它还可以在POST请求里发送二进制数据。要发送一个blob对象,你可以简单地通过使用data参数来传递它。例如:

     var blob = new Blob(['Hello World'], {type: 'text/plain'});     $http({

method: 'POST', 

url: '/',
data: blob

});


5. headers(对象)

一个列表,每一个元素都是一个函数,它会返回代表随请求发送的HTTP头。如果函数的返回值是null,对应的头不会被发送。

6. xsrfHeaderName(字符串)
保存XSFR令牌的HTTP头的名称。


7. xsrfCookieName(字符串)
保存XSFR令牌的cookie的名称。


8. transformRequest(函数或函数数组)这是一个函数或函数数组,用来对HTTP请求的请求体和头信息进行转换,并返回转换后的 版本。通常用于在请求发送给服务器之前对其进行序列化。

  这个函数看起来是这样的:
     function(data,headers) {}

9. transformResponse(函数或函数数组)这是一个函数或函数数组,用来对HTTP响应的响应体和头信息进行转换,并返回转换后的版本。通常用来进行反序列化。

  这个函数看起来是这样的:
     function(data,headers) {}

10. cache(布尔型或缓存对象)

如果cache属性被设置为true,那么AngularJS会用默认的$http缓存来对GET请求进行缓存。如果cache属性被设置为一个$cacheFactory对象的实例,那么这个对象会被用来对GET请求进行缓存。

11. timeout(数值型或promise对象)

如果timeout被设置为一个数值,那么请求将会在推迟timeout指定的毫秒数后再发送。如果被设置为一个promise对象,那么当该promise对象被resolve时请求会被中止。

12. withCredentials(布尔型)

如果该属性被设置为true,那么XHR请求对象中会设置withCredentials标记。

默认情况下,CORS请求不会发送cookie,而withCredentials标记会在请求中加入Access-Control-Allow-Credentials头,这样请求就会将目标域的cookie包含在请求中。

13. responseType(字符串)responseType选项会在请求中设置XMLHttpRequestResponseType属性。我们可以使用以下

HTTP请求类型其中之一:

""(字符串,默认);
"arraybuffer"(ArrayBuffer);
"blob"(blob对象);
"document"(HTTP文档);
"json"(从JSON对象解析而来的JSON字符串);"text"(字符串);
"moz-blob"(Firefox的接收进度事件);
"moz-chunked-text"(文本流);
"moz-chunked-arraybuffer"(ArrayBuffer流)。 


三、关于$resourse 摘自官网




四、书上关于restangular的介绍




Maggie:感觉用法跟$resourse略有相似,不知道区别在哪,知道了再写下一篇好了~

0 0
原创粉丝点击