CORS权限控制

CORS权限控制

CORS是一种新的数据交互标准。

依旧是XHR请求,但是克服了ajax的跨域问题。

请求类别

CORS主要分为两种请求方式:简单请求和非简单请求

只要满足两个条件就是简单请求:

  1. 请求的方法是HEAD或GET或POST

  2. HTTP的头部信息不超出以下字段:Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type

其中Content-Type的值只可以是application/x-www-form-urlencoded、multipart/form-data、text/plain.

其余都是非简单请求

简单请求 simple request

浏览器发起一个简单请求,在头信息中多加了一个Origin字段。

GET /cors HTTP/1.1
Origin: http://api.bob.com
Host: api.alice.com
Accept-Language: en-US
Connection: keep-alive
User-Agent: Mozilla/5.0...

服务器依据设置判断是否允许来自Origin的地址的访问,如果允许就返回请求的值。

Access-Control-Allow-Origin: http://api.bob.com

返回的值中会有Access-Control-Allow-Origin字段,代表允许的地址值。

Access-Control-Allow-Origin 可以设置为 * ,代表允许任何地址访问。

非简单请求

发起非简单请求时,浏览器会先发起依次预检请求,检查Origin、Access-Control-Request-Method和Access-Control-Request-Headers之后,做出回应。

xhr.setRequestHeader('X-Custom-Header', 'value'); //xhr请求中自定义的头部字段

OPTIONS /cors HTTP/1.1
Origin: http://api.bob.com
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: X-Custom-Header //包含的头部自定义字段
Host: api.alice.com
Accept-Language: en-US
Connection: keep-alive
User-Agent: Mozilla/5.0...

预检请求的回应

HTTP/1.1 200 OK
Date: Mon, 01 Dec 2008 01:15:39 GMT
Server: Apache/2.0.61 (Unix)
Access-Control-Allow-Origin: http://api.bob.com // 允许的地址
Access-Control-Allow-Methods: GET, POST, PUT // 允许的方法
Access-Control-Allow-Headers: X-Custom-Header // 允许的头部自定义字段
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Content-Length: 0
Keep-Alive: timeout=2, max=100 // max代表此条预检请求有效期为100s,此期间内无需发起预检请求。
Connection: Keep-Alive
Content-Type: text/plain

转载于:https://www.cnblogs.com/mydia/p/7503581.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值