使用$http 服务直接同外部对象进行通信
$http服务只是简单的封装了浏览器 原生的 XMLHttpRequest对象
$http服务只能接受一个参数,这个参数必须是一个对象,配置内容
返回值是一个 promise 对象,具有success方法和error方法
基本使用场景:
$http({
method:'GET',
url:'/api/users.json'
}).success(function(data,status,headers,config){
//当响应准备就绪时调用
}).error(function(data,status,headers,config){
//当响应以错误状态返回时调用
});
这个方法实际上返回一个 promise对象 所以上面的方法是不会返回回调函数的
var promise = $http({
method:'GET',
url:'/api/user.json',
});
promise.success(function(data,status,headers,config){
//处理成功的响应
});
promise.error(function(data,status,headers,config){
//处理失败的响应
});
状态码在200-299之间,都是响应成功的,success回调函数会被调用
否则error函数会被调用
大多数是用的地方是:在$apply代码块内部使用$http ,
$scope.$apply(function(){
$http({
method:'GET',
url:'/api/user.json',
)};
});
设置对象:
$http({
method:'GET',
url:'/api/user.json',
)};
包含如下几种:
1.method:字符串
这个键是我们希望发送的请求的http方法,它的值有:GET ,POST,DELETE,HEAD,JSONP,PUT
2.url :字符串
请求的目标地址
3.params :字符串或者map对象 这个键的值是一个字符串map对象,会被转换成查询字符串追加在URL后面,如果值不是字符串,会被JSON序列号
4.data :字符串或者对象
发送POST时请求使用,
5.headers 对象
一个列表,每一个元素都是一个函数,它会返回代表随请求发送的HTTP头,如果函数返回的是null ,对应的头不会被发送给服务器
6.xsrfHeaderName 字符串
7.xsrfCookieName字符串,保存XSRF令牌的cookie
还有其他更多 比如cache timeout 等等
响应对象:
data:字符串或者对象
响应体 其实就是数据吧
status:数值型,HTTP状态码
headers:函数
config:对象 这个对象是用来生成原始请求的完整设置对象
statusText :字符串 这个字符串是响应HTTP状态的文本
$http({
method:'GET',
url:'/api/user.json',
}).then(resp){resp.headers('X-Auth-ID')});;