Page 175 - AngularJS权威教程
P. 175
16.3 使用 CORS 155
首先,告诉AngularJS使用XDomain,并从所有的请求中把X-Request-With头移除掉。 1
X-Request-With头默认就是移除掉的,但是再次确认它已经被移除没有坏处。 2
angular.module('myApp', [])
.config(function($httpProvider) { 3
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers
.common['X-Requested-With']; 4
});
现在可以发送CORS请求了。
5
16.3.2 服务器端CORS支持
6
尽管这一章不深究服务端CORS的设置(第18章才会深入讨论),但是确保服务器支持CORS
是很重要的。
7
支持CORS的服务器必须在响应中加入几个访问控制相关的头。
Access-Control-Allow-Origin 8
这个头的值可以是与请求头的值相呼应的值,也可以是*,从而允许接收从任何来源发来的请求。
Access-Control-Allow-Credentials(可选) 9
默认情况下,CORS请求不会发送cookie。如果服务器返回了这个头,那么就可以通过将
withCredentials设置为true来将cookie同请求一同发送出去。 10
如果将$http发送的请求中的withCredentials设置为true,但服务器没有返回Access-
Control-Allow-Credentials,请求就会失败,反之亦然。 11
后端服务器必须能处理OPTIONS方法的HTTP请求。
12
CORS请求分为简单和非简单两种类型。
13
16.3.3 简单请求
如果请求使用下面一种HTTP方法就是简单请求: 14
HEAD;
GET; 15
POST。
如果请求除了下面列表中的一个或多个HTTP头以外,没有使用其他头: 16
Accept;
Accept-Language ; 17
Content-Language;
Last-Event-ID;
18