CORS请求

118 阅读1分钟

当发出一个请求的时候,浏览器发现是一个跨域的请求,会增加几个请求头,分为简单和复杂请求

  • 简单请求(POST GET HEAD 中一个,且请求头字段是限制的几个)
额外请求头: Origin
响应头:
  Access-Control-Allow-Origin: http:                允许的域名
  Access-Control-Allow-Credentials: true            是否携带cookies
  Access-Control-Expose-Headers: FooBar             增加的响应头
  • 复杂请求(application/json 也属于复杂请求)
  预检请求(域名是否被允许跨域,允许的请求方法,额外的请求头)
      OPTIONS
      Origin: http://api.bob.com                        域名是否被允许
      Access-Control-Request-Method: PUT                请求方法
      Access-Control-Request-Headers: X-Custom-Header   额外的请求头
      响应:
      Access-Control-Allow-Origin: http://api.bob.com
      Access-Control-Allow-Methods: GET, POST, PUT
      Access-Control-Allow-Headers: X-Custom-Header 允许的额外请求头
      Access-Control-Max-Age 有效期
      
   预检请求成功后,之后的每次请求都和简单请求差不多,也是需要携带Origin字段
   Origin: http://api.bob.com
   响应允许的头部
   Access-Control-Allow-Origin