AngularJSAngularJS中$http服务之简易用法

我们得以动用内置的$http服务一直与外部进行通信。$http服务只是略的包裹了浏览器原生的XMLHttpRequest对象。

1、链式调用

$http服务是只能接受一个参数的函数,这个参数是一个靶,包含了为此来生成HTTP请求的
部署内容。这个函数返回一个promise对象,具有success和error两单方法。

$http({
url:’data.json’,
method:’GET’
}).success(function(data,header,config,status){
//响应成功

}).error(function(data,header,config,status){
//处理应失败
});

2、返回一个promise对象

var promise=$http({
method:’GET’,
url:”data.json”
});

由于$http方法返回一个promise对象,我们得以应返回时用then方法来处理回调。如果
运then方法,会获一个特种的参数,它象征了对应对象的中标还是黄信息,还足以接受两单
而是摘的函数作为参数。或者好采用success和error回调代替。

promise.then(function(resp){
//resp是一个应对象

},function(resp){
//带有错误信息之resp

});

或这样:

promise.success(function(data,status,config,headers){
//处理成之应
});

promise.error(function(data,status,hedaers,config){
//处理失败后底应
});

then()方法与另两栽艺术的最主要分是,它见面收取至整的应对象,而success()和error()则会对响应对
形象进行析构。

3、快捷的get请求

①$http.get(‘/api/users.json’);

get()方法返回HttpPromise对象。

尚可发送比如:delete/head/jsonp/post/put 函数内而承受参数具体参照148页

②以重发送jsonp请求举例说明:
为了发送JSONP请求,其中url必须包含JSON_CALLBACK字样。

jsonp(url,config) 其中config是可选的

var promise=$http.jsonp(“/api/users.json?callback=JSON_CALLBACK”);

4、也堪拿$http当做函数来采取,这时需要传入一个安对象,用来证实什么组织XHR对象。

$http({
method:’GET’,
url:’/api/users.json’,
params:{
‘username’:’tan’
});
 

内部设置对象足以分包以下重点的键:
①method
可以是:GET/DELETE/HEAD/JSONP/POST/PUT

②url:绝对的或者相对的请目标
③params(字符串map或者目标)
此键的值是一个字符串map或对象,会于转换成为查询字符串追加在URL后面。如果值不是字符串,会叫JSON序列化。
据这个:

//参数会转为?name=ari的花样
$http({
params:{‘name’:’ari’}
});

④data(字符串或者目标)
是目标中蕴藏了以见面被当消息体发送给服务器的数目。通常在殡葬POST请求时以。

由AngularJS
1.3初步,它还好以POST请求里发送二向前制数据。要发送一个blob对象,你得略地由此采用data参数来传递它。
例如:

var blob=new Blob([‘Hello world’],{type:’text/plain’});
$http({
method:’POST’,
url:’/’,
data:blob
});

4、响应对象

AngularJS传递让then()方法的应对象涵盖了季单属性。
◇data
其一数据代表转换后之响应体(如果定义了易的话语)
◇status
响应的HTTP状态码
◇headers
这函数是头信息之getter函数,可以领一个参数,用来得到相应名字值

譬如,用如下代码获取X-Auth-ID的价:

$http({
method: ‘GET’,
url: ‘/api/users.json’
}).then (resp) {
// 读取X-Auth-ID
resp.headers(‘X-Auth-ID’);
});

◇config
本条目标是用来深成原本请求的完全设置对象。

◇statusText(字符串)
斯字符串是应的HTTP状态文本。

5、缓存HTTP请求
默认情况下,$http服务不见面指向要进行地面缓存。在发送单独的请求时,我们得经为$http请求传入一个布尔值或者一个缓存实例来启用缓存。
$http.get(‘/api/users.json’,{ cache: true })
.success(function(data) {})
.error(function(data) {});

第一不行发送请求时,$http服务会向/api/users.json发送一个GET请求。第二蹩脚发送和一个GET请求时,$http服务会打缓存中取回请求的结果,而休会见真的发送一个HTTP
GET请求。
当此例子里,由于设置了启用缓存,AngularJS默认会以$cacheFactory,这个服务是AngularJS在开行时自动创建的。

假定想只要针对性AngularJS使用的休息存进行双重多之自定义控制,可以向请求传入一个自定义的苏存实例代替true。

相关文章