美文网首页
HTTP 的 OPTIONS 方法

HTTP 的 OPTIONS 方法

作者: AmosHai | 来源:发表于2019-06-13 15:15 被阅读0次

什么是options请求?

  • 官方解释:用于获取目的资源所支持的通信选项。

用于检测服务端对接口等资源的支持情况,包括各种请求方法、头部的支持情况,仅作查询使用

options请求有什么特点

选项 有/无 说明
Request has body No 没有请求体
Successful response has body No 成功的响应没有响应体
Safe Yes 安全
Idempotent Yes 密等性,不变性,同一个接口请求多少次都一样
Cacheable No 不能缓存
Allowed in HTML forms No 不能在表单里使用

什么时候有options请求

首先我们要了解 XMLHttpRequest 是遵守同源策略的,当我们需要请求的资源与本资源所在服务器不同的域、协议和端口时,我们就会发起一个跨域http请求。

规范要求,对那些可能对服务器数据产生副作用的 HTTP 请求方法(特别是 GET 以外的 HTTP 请求,或者搭配某些 MIME 类型的 POST 请求),浏览器必须首先使用 OPTIONS 方法发起一个预检请求(preflight request),从而获知服务端是否允许该跨域请求。服务器确认允许之后,才发起实际的 HTTP 请求。

跨域请求分为两种:简单请求和预测请求,简单请求不会触发options请求

当请求满足下述任一条件时,即应首先发送预检请求:

  1. 使用了下面任一 HTTP 方法:

    • PUT
    • DELETE
    • CONNECT
    • OPTIONS
    • TRACE
    • PATCH
  2. 有自定义请求头

  3. Content-Type 的值不属于下列之一:

    • application/x-www-form-urlencoded
    • multipart/form-data
    • text/plain
  4. 请求中的XMLHttpRequestUpload 对象注册了任意多个事件监听器。

  5. 请求中使用了ReadableStream对象。

参考

相关文章

网友评论

      本文标题:HTTP 的 OPTIONS 方法

      本文链接:https://www.haomeiwen.com/subject/lqjsfctx.html