Page 145 - AngularJS权威教程
P. 145
15.1 使用$http 125
1
第15章 2
同外界通信:XHR和
3
服务器通信
4
5
AngularJS应用是完全运行在客户端的应用。我们已经看到,可以构建一个完全不依赖任何
后端,同时也能实现动态内容和响应的Web应用。 6
没有后端的支持,我们只能展示随页面一起加载进来的数据。AngularJS提供了几种方式将 7
应用同来自远程服务器的信息集成在一起。
8
15.1 使用$http
我们可以使用内置的$http服务直接同外部进行通信。$http服务只是简单的封装了浏览器 9
原生的XMLHttpRequest对象。
$http服务是只能接受一个参数的函数,这个参数是一个对象,包含了用来生成HTTP请求的 10
配置内容。这个函数返回一个promise对象,具有success和error两个方法。
11
查看15.2节来了解关于可选配置选项的详细信息。
12
这两个方法最基本的使用场景如下:
$http({ 13
method: 'GET',
url: '/api/users.json'
}).success(function(data,status,headers,config) {
// 当相应准备就绪时调用 14
}).error(function(data,status,headers,config) {
// 当响应以错误状态返回时调用
}); 15
请注意,看上去我们向$http中传入了一个回调函数供响应返回时调用,但事实并非如此。
这个方法实际上返回了一个promise对象。 16
当promise返回时,我们可以将$http方法的运行结果当作变量一并返回,并将其他promise
同它串联在一起,进行链式的调用。 17
在创建服务时会频繁使用链式调用技术,因此服务可以返回一个promise对象,而不需要回
调函数。 18