CORS跨域请求

101 阅读1分钟

服务器明确表明允许,则校验成功,否则校验失败

CORS请求分为两类:

  • 简单请求

    • 请求方法为GET、HEAD、POST
    • 头部字段满足CORS安全规范
    • 请求头的Content-Type为text/plain、multipart/form-data、application/x-www-form-urlencoded

image.png

使Access-Control-Allow-Origin中包含Origin的源,使服务器允许通过检验

  • 预检请求

1 .发送预检请求

发送预检请求是指浏览器在发起某些跨域请求之前,会先发送一个OPTIONS请求,询问服务器对跨域请求的支持情况。这个OPTIONS请求就是预检请求。
预检请求是一种用于检查服务器是否允许特定跨域请求的机制。它包含了对实际请求(如GET、POST等)的预检查,以确保实际请求不会对服务器产生不安全或未经授权的访问。
预检请求并不会执行实际的业务逻辑,而只是进行服务器的检查和确认。

  1. 发送真实请求

执行简单请求过程

image.png

使Access-Control-Allow-Origin中包含Origin的源,使服务器允许通过检验
设置Access-Control-Allow-Methods的请求方法和Access-Control-Headers的请求头参数,进行服务器验证通过
Access-Control-Max-Age字段的值表示预检请求结果的缓存时间。在这段时间内,浏览器可以重用之前的预检请求结果,而不需要再次发送预检请求。这可以减少与服务器的通信次数,提高性能。