Page 177 - AngularJS权威教程
P. 177

16.5 使用 JSON   157


                   Access-Control-Allow-Headers                                                     1
                  如果设置了Access-Control-Request-Headers头,服务器必须在响应中添加同一个头。

                  我们希望服务器在可以接受这个请求时返回200状态码。如果服务器返回了200状态码,真正                                        2
              的请求才会发出。
                                                                                                     3
                          CORS并不是一个安全机制,只是现代浏览器实现的一个标准。在应用中设置安
                         全策略依然是我们的责任。
                                                                                                     4
                  AngularJS中的非简单请求与普通请求看起来没有什么区别:
                                                                                                     5
                  $http
                  .delete("https://api.github.com/api/users/1")
                  .success(function(data) {
                      // 数据                                                                          6
                  });

                                                                                                     7
              16.4  服务器端代理


                  实现向所有服务器发送请求的最简单方式是使用服务器端代理。这个服务器和页面处在同一                                           8
              个域中(或者不在同一个域中但支持CORS),做为所有远程资源的代理。
                  可以简单地通过使用本地服务器来代替客户端向外部资源发送请求,并将响应结果返回给客                                           9
              户端。
                  通过这种方式,老式浏览器不必使用需要发送额外请求的CORS(只有现代浏览器支持                                            10
              CORS)也能发送跨域请求,并且可以在浏览器中采用标准的安全策略。

                  为了实现服务器端代理,需要架设一个本地服务器来处理我们所有的请求,并负责向第三方                                           11
              发送实际的请求。
                  更多关于架设服务器端组件的内容请查看第18章。                                                            12


              16.5 使用 JSON                                                                           13


                  JSON是JavaScript Object Notation的简写,是一种看起来像JavaScript对象的数据交换格式。                     14
              事实上,当JavaScript加载它时,它确实会被当做一个对象来解析。AngularJS也会将所有以JSON
              格式返回的JavaScript对象解析为一个与之对应的Angular对象。
                                                                                                     15
                  例如,如果服务器返回以下JSON:

                  [                                                                                  16
                      {"msg": "This is the first msg", state: 1},
                      {"msg": "This is the second msg", state: 2},
                      {"msg": "This is the third msg", state: 1},
                      {"msg": "This is the fourth msg", state: 3}                                    17
                  ]
                  当AngularJS通过$http服务收到这个数据后,可以像普通JavaScript对象那样来引用其中的                               18
   172   173   174   175   176   177   178   179   180   181   182