AngularJSAngularJS中$http服务的简易用法

咱俩得以采纳内置的$http服务一直同外部实行通信。$http服务只是简单的包装了浏览器原生的XMLHttpRequest对象。

① 、链式调用

$http服务是只可以接受一个参数的函数,那个参数是1个指标,包含了用来生成HTTP请求的
配备内容。这一个函数重返多少个promise对象,具有success和error七个点子。

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

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

② 、重临二个promise对象

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

鉴于$http方法重返三个promise对象,我们得以在响应重临时用then方法来拍卖回调。如若
运用then方法,会赢得三个与众差异的参数,它象征了对应对象的打响或退步音讯,还是能接受七个
可选的函数作为参数。或然能够利用success和error回调代替。

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

},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字样。

AngularJS,jsonp(url,config) 当中config是可选的

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

四 、也可以将$http当做函数来利用,那时须求传入三个装置对象,用来表明怎么着组织XH宝马7系对象。

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

里头设置对象能够包蕴以下重点的键:
①method
可以是:GET/DELETE/HEAD/JSONP/POST/PUT

②url:相对的要么绝对的哀求指标
③params(字符串map可能目的)
以此键的值是三个字符串map或对象,会被转换到查询字符串追加在URubiconL前面。假使值不是字符串,会被JSON系列化。
譬如说那个:

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

④data(字符串也许指标)
这么些指标中包含了将会被当作音信体发送给服务器的数量。常常在殡葬POST请求时行使。

从AngularJS
1.3开端,它还足以在POST请求里发送二进制数据。要发送2个blob对象,你能够简单地通过应用data参数来传递它。
例如:

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

四 、响应对象

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请求传入3个布尔值只怕二个缓存实例来启用缓存。
$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使用的缓存举行越来越多的自定义控制,可以向请求传入2个自定义的缓存实例代替true。

相关文章