持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情
定义与例子详解
前情提要:简单请求(simple request):带有特定请求方法且HTTP的头信息不超出特定字段的
对于这类型请求浏览器直接发出CORS请求(头信息之中,增加一个Origin字段),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...
//举例来源于 http://www.ruanyifeng.com/blog/2016/04/cors.html
头信息详解
- 如果
Origin指定的源,不在许可范围内,服务器会返回一个正常的HTTP回应 - 如果
Origin指定的域名在许可范围内,服务器返回的响应,会多出几个头信息字段-
Access-Control-Allow-Origin(必选)- 表示接受任意域名的请求
-
Access-Control-Allow-Credentials(可选)- 表示是否允许发送Cookie
-
Access-Control-Expose-Headers(可选)
-
发送cookie关键之一:withCredentials 属性
CORS请求默认不发送Cookie和HTTP认证信息,所以如果要把cookie发到服务器,需要指定 Access-Control-Allow-Credentials为true,同时需要打开一个属性,就是withCredentials。两者条件缺一不可~!
写在最后
重新开始更文啦!最近忙了一段时间,终于继续可以学习!感谢大家的支持!我会继续努力坚持学习!养成了好习惯,每天必定会抽出时间多多少少学习前端知识~
以上习题&笔记从大佬们的论坛学习而来,特感谢大佬们的知识分享~ (学习技术知识,果然要看大佬们的技术博客,大家有好的推荐也欢迎指引我这个小白哈,感恩!)
附上学习链接,感谢这些大佬出题和解答: