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
   170   171   172   173   174   175   176   177   178   179   180