原文链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/angularjs-http-service/
1.通常用法:
$http服务是一个只有一个参数-配置对象的函数,用于产生一个http请求并返回一个promise对象。
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
//响应成功
}, function errorCallback(response) {
//响应失败
});
这个回复对象有这些属性:
data:转换函数转换之后的的响应体
status:响应的http状态码
header:得到的头部getter函数
config:用于生成请求的配置对象
statusText:响应的http状态文本
响应状态码(status)在200-299之间被认为是成功状态,并且会导致successCallback函数被调用。
2.快捷用法:
所有快捷用法都需要通过URL,并要求数据必须通过post或put要求。
$http.get('/someUrl', config).then(successCallback, errorCallback);
$http.post('/someUrl', data, config).then(successCallback, errorCallback);
快捷用法有:
- $http.get获得服务器上的某一资源
- $http.head 与get类似,但只获得http头信息
- $http.post 向服务器提交数据、更新创建资源等
- $http.put 用于向指定的URI传送更新资源
- $http.delete 删除某一资源
- $http.jsonp 获取jsonp数据
- $http.patch 用于更新某一部分的内容
3.使用$http编写单元测试
当进行单元测试时(用ngMock),必须调用$httpbackend.flush()来清除每个待定的请求。
$httpBackend.expectGET(...);
$http.get(...);
$httpBackend.flush();
4.返回一个promise对象
var promise=$http({
method:'GET',
url:"data.json"
});
promise.then(function(resp){
//返回resp响应对象
},function(resp){
//返回错误信息的resp
});