美文网首页前端开发笔记
关于浏览器预检(OPTIONS)请求

关于浏览器预检(OPTIONS)请求

作者: SimpleCXD | 来源:发表于2019-04-14 16:52 被阅读3次

浏览器在什么情况下会发起options预检请求?

在非简单请求且跨域的情况下,浏览器会发起options预检请求。

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

1 简单请求

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

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

2 复杂请求

非简单请求即是复杂请求

常见的复杂请求有:

  1. 请求方法为 PUT 或 DELETE

  2. Content-Type 字段类型为 application/json

  3. 添加额外的http header 比如access_token

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

浏览器的预检请求结果可以通过设置Access-Control-Max-Age进行缓存

如何解决跨域问题

请看我的另一篇文章: 如何解决前端跨域问题

相关文章

  • 关于浏览器预检(OPTIONS)请求

    浏览器在什么情况下会发起options预检请求? 在非简单请求且跨域的情况下,浏览器会发起options预检请求。...

  • Javascript基础知识5点(2019.1.29)

    1、什么是 options 请求?在正式跨域之前,浏览器会根据需要发起一次预检请求(即 options 请求),用...

  • 为什么会有OPTIONS请求

    Options 请求,我所了解的就是在发起跨域的非简单请求时,会先发起一个 options 预检请求(浏览器是自动...

  • options预检请求

    第一次看到这个词, 完全不知道是什么!如果你也和我一样,请继续往下看。当采用CORS(跨域资源共享)来解决跨域问题...

  • options预检请求

    起因  最近写项目的时候,发现前端中的请求发送了两遍,同时也看到了options请求。 前置知识 HTTP常见的请...

  • 简单请求和非简单请求2

    简单请求和非简单请求2 1、OPTIONS预检命令操作 (1)后端服务增加预检命令缓存 如果每个postJson请...

  • CORS 比较详细的说明

    一个CORS请求的流程 发送一个预检请求都为Options请求,因为Options请求不会对服务器做出任何改动。且...

  • 非简单跨越请求

    当浏览器发现请求是跨越的时候,会先进行预检请求,之后才会进行第二次请求来获取数据。 1. 预检"请求用的请求方法是...

  • options

    复杂请求在发送真正的请求前会提前发送一次Options请求(嗅探、预检请求),XHR会根据返回的Access-Co...

  • options预请求

    最近开发过程中,为了避免跨域,于是在服务端添加了Access-Control-Allow-Origin,前端出现一...

网友评论

    本文标题:关于浏览器预检(OPTIONS)请求

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