在AngularJS中主要使用$http
服务与远程http服务器交互,其作用类似于jquery中的$.ajax
服务:
-
$http
是AngularJS的一个核心服务,利用浏览器的xmlhttprequest或者via JSONP对象与远程HTTP服务器进行交互; - 与
$.ajax
相同,支持多种method请求:get、post、put、delete等; -
controller
中可通过与$scope
同样的方式获取$http
对象,形如:function controller($ http, $ scope){}
;
$http使用说明:
$http
服务使用如下面代码所示:
// 1.5以下版本
$http(config)
.success(function(data, status, headers, config){//请求成功执行代码})
.error(function(data, status, headers, config){//请求失败执行代码})
// 1.5以上版本
$http(config).then(
function successCallback(response){//请求成功执行代码},
function errorCallback(response){//请求失败执行代码}
);
具体参数、方法说明:
- 配置参数:
config是请求的配置参数总集,格式为json;
包含的配置项包括:
method:字符串类型,请求方式如"GET","POST","DELETE"等;
url:字符串类型,请求的url地址;
params:json类型,请求参数,将在url上被拼接成?key=value的形式;
data:json类型,请求数据,将放在请求内发送至服务器;
cache:bool类型,true表示http GET请求时采用默认的cacheFactory的实例;
timeout:整数类型,超时时间;
- 回调函数:
success是请求成功后的回调函数;
error是请求失败后的回调函数;
data是响应体;
status是相应的状态值;
headers是获取getter的函数;
config是请求中的config json对象;
method属性可以作为config配置参数中的一个属性,也可以直接作为方法调用,如:
$http.post(url, data, config)
$http使用范例:
var searchOplog = function ($http, table, btn) {
$http({
url: 'data/oplog.json',
method: 'GET'
}).then(function successCallback(response) {
console.log('get Oplog success:', response);
table.init(response.data);
btn.button('reset');
btn.dequeue();
}, function errorCallback(response) {
console.log('errorCallback Response is:', response);
table.init();
btn.button('reset');
btn.dequeue();
});
};