原因
- 原因是浏览器对简单跨域请求和复杂跨域请求的处理区别
为什么出现OPTIONS请求
-
多数情况我们自定义了请求头 服务器和浏览器之间的请求头方式不一致导致会出现options预检请求
preflighted request
询问服务器对跨域请求的支持情况 -
“需预检的请求”要求必须首先使用
OPTIONS
方法发起一个预检请求到服务器,以获知服务器是否允许该实际请求。"预检请求“的使用,可以避免跨域请求对服务器的用户数据产生未预期的影响。 -
当请求满足下述任一条件时,即应首先发送预检请求:
-
使用了下面任一 HTTP 方法:
-
人为设置了对 CORS 安全的首部字段集合之外的其他首部字段。该集合为:
-
Content-Type
的值不属于下列之一:application/x-www-form-urlencoded
multipart/form-data
text/plain
-
请求中的
XMLHttpRequestUpload
对象注册了任意多个事件监听器。 -
请求中使用了
ReadableStream
对象。
网友评论