【前端进阶学习】简单请求(simple request)详解

88 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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两者条件缺一不可~!

写在最后

重新开始更文啦!最近忙了一段时间,终于继续可以学习!感谢大家的支持!我会继续努力坚持学习!养成了好习惯,每天必定会抽出时间多多少少学习前端知识~

以上习题&笔记从大佬们的论坛学习而来,特感谢大佬们的知识分享~ (学习技术知识,果然要看大佬们的技术博客,大家有好的推荐也欢迎指引我这个小白哈,感恩!)

附上学习链接,感谢这些大佬出题和解答: