1.preflight request(预检请求)

360 阅读1分钟

image.png 为什么会有预检请求?

   跨域资源共享标准新增了一组HTTP首部字段,允许服务器声明 A源站 通过浏览器有权限访问 B资源。

  规范要求,对那些可能对服务器资源产生副作用的HTTP请求方式,浏览器必须使用OPTTIONS 发起一个预检请求,

  从而获知服务器端是否允许该跨域请求。 服务器确认允许后,才发起实际的HTTP请求。

  说白了,就是要先发起一个验证,看是否符合要求。与HTTP三次握手,有一点点类似。

触发预检请求条件

   并非所有的跨域请求都会触发preflight request。

   满足如下所有条件,即使跨域,也不会触发预检请求,一般称为简单请求。

   1、使用 GET、HEAD、POST 方法  

   2、Content-Type 只能是 text/plain、 multipart/form-data、 application/x-www-form-urlencoded  

   3、不添加自定义头部信息