为什么会有OPTIONS请求

159 阅读1分钟

一般OPTIONS请求方式是浏览器行为,不用自己定义。当加载复杂请求会先发起一次空body的OPTIONS请求,称为"预检"请求,用于向服务器请求权限信息,等预检请求被成功响应后,才发起真正的http请求。 form表单中method也不能为OPTIONS

关于简单请求和复杂请求:

1 简单请求

简单请求需满足以下两个条件

  1. 请求方法是以下三种方法之一:
  • HEAD
  • GET
  • POST
  1. HTTP 的头信息不超出以下几种字段
  • Accept
  • Accept-Language
  • Content-Language
  • Last-Event-ID
  • Content-Type: 只限于 (application/x-www-form-urlencodedmultipart/form-datatext/plain)

2 复杂请求

非简单请求即是复杂请求

常见的复杂请求有:

  1. 请求方法为 PUTDELETE
  2. Content-Type 字段类型为 application/json
  3. 添加额外的http header 比如 token

在跨域的情况下,非简单请求会先发起一次空bodyOPTIONS请求,称为"预检"请求,用于向服务器请求权限信息,等预检请求被成功响应后,才发起真正的http请求。

参考文章:

跨域资源共享 CORS 详解