Page 154 - AngularJS权威教程
P. 154
134 第 15 章 同外界通信:XHR 和服务器通信
这个功能可以通过使用请求转换器实现,对于单个请求,也可以通过设置$http
请求的headers选项实现。
也可以只对POST和PUT类型的请求进行设置。POST请求的默认头如下所示:
Content-Type: application/json
可以在.config()函数中对POST请求的头进行修改或扩充,如下所示:
angular.module('myApp', [])
.config(function($httpProvider) {
$httpProvider.defaults.headers
.post['X-Posted-By'] = 'MyAngularApp';
});
也可以对所有的PUT请求做同样的设置。PUT请求的默认头如下所示:
Content-Type: application/json
可以在.config()函数中对PUT请求的头进行修改或扩充,如下所示:
angular.module('myApp', []) .config(function($httpProvider){
$httpProvider.defaults.headers
.put['X-Posted-By'] = 'MyAngularApp';
});
15.7 使用$resource
AngularJS还提供另外一个非常有用的可选服务$resource供我们使用。这个服务可以创建一
个资源对象,我们可以用它非常方便地同支持RESTful的服务端数据源进行交互,当同支持
RESTful的数据模型一起工作时,它就派上用场了。
REST是Representational State Transfer(表征状态转移)的缩写,是服务器用来
智能化地提供数据服务的一种方式。更多关于REST的信息可以查看维基百科 。
①
$resource服务难以置信地方便,它对很多复杂的细节进行了抽象,只留下同后端服务器进
行真正有意义的交互,前提是服务器支持RESTful的数据模型。
$resource服务可以将$http请求转换成save和update等简单形式。我们可以通过$resource
服务来处理复杂的细节,而无需自己编写重复和繁琐的业务代码。
15.8 安装
ngResource模块是一个可选的AngularJS模块,支持与RESTful的后端数据源进行交互。由于
ngResource模块没有默认内置在AngularJS中,因此我们需要安装并在应用中引用它。
②
首先需要从code.angularjs.org 上下载它,然后放到一个类似于js/vendor/angular-resource.js这
——————————
① http://en.wikipedia.org/wiki/Representational_State_Transfer
② http://code.angularjs.org