首页 > 其他分享 >prefilght请求由来

prefilght请求由来

时间:2022-12-03 11:15:23浏览次数:80  
标签:浏览器 请求 prefilght 预检 preflight 服务器 跨域

工作中配置监控报警参数时,发现请求接口是有两次。第一个是preflight请求,第二个是正常请求,如图:观察preflight方法是options,然后是正常的请求(post)
image
因此了解下什么是preflight,前因后果。

正常浏览器禁止跨域访问,通常有两种方案:

  1. 禁止发出请求
  2. 拦截请求的返回
    针对后者,如果请求已经发出,server端已经做了处理(比如,更新了db),拦截返回后,会导致客户端以为请求没发出,实际服务端已经做了修改,不符合认知。因此有了预检请求。

浏览器判断需要cors(cross-origin-)跨域请求时,主动发起的预检请求,返回成功了,才会发送真实的请求。

参考:https://blog.p2hp.com/archives/9282

什么是preflight请求?

preflight,一个cors预检请求,属于options请求。该请求会在浏览器认为即将要执行的请求可能会对服务器造成不可预知的影响时,由浏览器自动发出。
利用预检请求,浏览器能够知道当前的服务器是否允许执行即将要进行的请求,只有获得了允许,浏览器才会真正执行接下来的请求。
所以,总结有几点:

浏览器自动发出该请求,不需要用户干预
该请求发生在用户发送的请求之前,只有预检请求通过,用户发送的请求才能发送到服务器,否则抛出CORS错误。

标签:浏览器,请求,prefilght,预检,preflight,服务器,跨域
From: https://www.cnblogs.com/rickyWang/p/16947163.html

相关文章

  • HTTP_请求消息_请求行以及请求体
    HTTP_请求消息_请求行以及请求体请求消息数据格式1.请求行请求行:请求方式 请求url 请求协议/版本GET/login.htmlHTTP/1.1请求方式:......
  • 原生OKHttp的Get和Post请求思路
    原生OKHttp的Get和Post请求思路引入pom依赖<!--接收OKHttp返回json信息依赖-->   <dependency>     <groupId>com.squareup.okhttp3</groupId> ......
  • vue多个方法的异步请求
    1、async和awaitasync/await是一种建立在Promise之上的编写异步或非阻塞代码的新方法。async是异步的意思,而await是asyncwait的简写,即异步等待。1//假设这是......
  • arthas 生成运行时的方法请求与响应参数
      请求格式watch类方法'{params,returnObj,throwExp}'-n5-x3其中参数说明:params是参数列表,是一个数组,可以直接通过下标方式访问returnObj返回的结果t......
  • 数据请求
    1.小程序中的数据请求有什么限制?以及如何解决这种限制1.限制:1.只能请求HTTPS类型的接口2.必须将接口的域名添加到信任列表中......
  • elastic-search HTTP请求
    elastic-search请求索引查看所有索引GET_cat/indices?v&pretty查看索引信息GETindex_name/_mapping插入索引PUTindex_name{"settings":{"n......
  • 原生ajax 发送请求
    原生ajax 发送请求原生发送请求不带参数<body><h2>原生ajax</h2><button>原生发送请求不带参数</button><script>document.querySelector("b......
  • 并发请求导致的一个乐观锁问题
    项目中:A同学需要对接顺丰的路由推送与路由订阅接口。在查阅顺丰文档顺利开发完成接口后,配置完成客户的信息权限,自测,通过,顺利提交代码。顺丰推送接口时出现乐观锁异常:{"......
  • 后端接口要求请求头的Content-Type:application/x-www-form-urlencoded
    背景使用apipost接口请求工具调试后端接口的时候,后端要求的类型是application/x-www-form-urlencoded,采用其他方式无法获取到数据,前端如何发起网络请求呢?以类型为applica......
  • Open Feign 发送GET请求入参为@RequestBody时调用失败
    前言最近在优化代码,将部分码帮帮代码重写了一下,然后就发现了OpenFeign发送GET请求入参为@RequestBody时调用失败的问题!问题重现controller层fegin层这里可能有人对......