快速理解OPTIONS请求

news2024/10/10 18:33:02

快速理解OPTIONS请求

  • 简述
  • 实际遇到的问题

简述

OPTIONS请求常被用作一种“预检”请求,以检查实际请求(如POST或PUT)是否可以被服务器接受。
为什么要有OPTIONS请求?
比如当一个POST请求比较复杂时,传输一个POST请求比较消耗带宽及性能,若被拦截再返回,这样子十分消耗资源。于是可以采用更加轻量化的OPTIONS请求去预检。当OPTIONS请求出现问题时,将不再执行实际的POST请求,这样可以提升性能,特别是遇到跨域问题的时候。
什么时候去发送OPTIONS请求?
这通常不需要在代码里主动发送OPTIONS请求,浏览器若判断某个请求(如复杂的POST等)比较复杂的时候,会自动发送OPTIONS请求进行预检(由浏览器自动控制其发送)。若预检失败,则不发送实际请求。

具体什么情况去发送OPTIONS,这是由浏览器决定的,没必要深究,网上资料也很多

实际遇到的问题

这就很好理解了,为什么我就发了一个post,会出现2个请求,因为其中一个是OPTIONS请求,另外一个是POST
在这里插入图片描述
而一般情况下,我发一个post请求,就只有1个post请求(是因为浏览器判断该请求比较简单)

既然是浏览器自动发送,那为什么还要考虑OPTIONS请求呢?
比如后端springboot工程中,会有拦截器,假如一个未登录用户想要请求接口的时候,那就做一个拦截的操作。确保只有登录后,才能访问除登录以外的接口。
只有登录并保存有Session信息的用户,才能访问相应的接口,那么就意味着前端需要传输cookie给后端验证身份,后端才能获取到对应的session。
然而OPTIONS请求通常不携带cookie,那样后端也没法获取session,会被自定义的Session拦截器拦截。即使,前后端代码中设置了允许携带cookie。

解决方法
后端拦截器除了对登录接口login放行,还需要对OPTIONS请求放行
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2202723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pdf怎么删除多余不想要的页面?删除pdf多余页面的多个方法

pdf怎么删除多余不想要的页面?在日常办公或学习中,我们经常会遇到需要处理PDF文件的情况。PDF文件因其格式稳定、不易被篡改的特点而广受青睐,但在编辑方面却相对不如Word等文档灵活。有时,在接收或创建的PDF文件中,可…

【含文档】基于Springboot+Android的校园论坛系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

Linux-sed和gawk

文本处理-sed编辑器 文本处理-gawk程序 文本处理-sed编辑器基础 文本处理-sed编辑器基础-使用地址 文本处理-sed编辑器基础-删除行 文本处理-sed编辑器基础-插入和附加文本 文本处理-sed编辑器基础-修改行/转换命令 文本处理-sed编辑器基础-回顾打印-打印行/打印行号/列出行 文…

如何用一套商业模式 整合本地商业 打造强有力的商家联盟!

大家好,我是吴军,来自一家专注于软件开发的公司。 近年来,一种新颖的商业模式异军突起,它不仅为消费者和零售商带来了实质性的利益,也为平台创造了可观的经济回报。 在当前经济环境下,消费者行为愈发理性&…

[SQL] 安装

一 Windows 1.1 下载 进入Mysql的官方网站,点击下载->找到社区版本 选择对应操作系统进行下载。 点击下载 选择直接下载即可 1.2 安装 选择Full安装: MySQL服务器、客户端程序和其他附加工具如果只需要服务端那就选择Server only即可 点击执行,等待组件下载完…

如何批量下载淘宝主图、详情图和SKU图?

如何批量下载淘宝主图、详情图和SKU图?在电商行业竞争日益激烈的今天,电商从业者面临着前所未有的挑战与机遇。为了提升商品竞争力,深入分析对手策略及优化自家产品展示成为日常工作的重中之重。其中,批量下载淘宝主图、详情图和S…

vue cli配置环境变量并使用

1.在根路径下创建.env文件 2.写.env文件内容 文件里存储的值的key要以 VUE_APP 开头 VUE_APP VUE_APP_PUBLIC_PATH/ VUE_APP_PUBLIC_PATH/helper/ 3.使用 publicPath: process.env.VUE_APP_PUBLIC_PATH, 4.配置package.json "serve:production": "vue-cli-s…

FreeRTOS-软件定时器

FreeRTOS-软件定时器 一、软件定时器简介1.1 软件定时器的状态和工作模式 二、软件定时器结构体成员和API函数三、软件定时器实验 一、软件定时器简介 定时器:指定时间开始,经过一个指定的时间,触发一个超时事件,用户可自定义定时…

ThinkPHP5bootstrapMySQL开发学习平台(包括后台管理功能、PC端网页、移动端网页)手把手运行源码

一、项目预览(全部源码链接在最下面) 功能及页面持续优化中...... 二、本地运行方式 1、下载源码包进行解压(源码在最下面) 2、下载phpstudy_pro,并运行Apache&

精华帖分享 | 判定策略失效的新方法——统计假设检验

本文来源于量化小论坛策略分享会板块精华帖,作者为元亨利贞,发布于2023年12月25日。 以下为精华帖正文: 1、起因 去年刚入门B圈,由于之前有做商品期货择时的经验,通常来讲,趋势跟随,并且回测结…

谁说电商选品找货源没有捷径,只要你用对工具!

最近跟很多同行聊,都在抱怨选品难的问题,都说7分靠选品,3分靠运营,对于选品来说,并没有捷径可走,但其实是有很多不同的角度的。 现在市面上大部分开发做的选品,“选品方法”或“产品分析方法”…

SiLM266x系列SiLM2661高压电池组前端充/放电高边NFET驱动器 为电池系统保护提供可靠性和设计灵活性

SiLM2661产品概述: SiLM2661能够灵活的应对不同应用场景对锂电池进行监控和保护的需求,为电池系统保护提供可靠性和设计灵活性。是用于电池充电/放电系统控制的低功耗、高边 N 沟道 FET 驱动器,高边保护功能可避免系统的接地引脚断开连接&am…

Pycharm连接AutoDL服务器 文件上传 启动终端

Pycharm AutoDL 需要使用pycharm专业版(学生可以通过教育邮箱认证,每年一次)。 首先进入AutoDL官网:AutoDL-品质GPU租用平台-租GPU就上AutoDL进行学生注册登录(可以领10元的代金券)点击右上角的控制台&am…

京东web 京东e卡绑定 第二部分分析

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我删…

api测试和接口测试的区别

API测试和接口测试是软件测试中一个非常重要的领域,尤其是在当前Web应用程序和移动应用程序的发展中。虽然它们都测试了Web服务的功能,但是二者在测试方法和测试实施方面存在很大的差异。本文将介绍API测试和接口测试之间的主要区别 API测试的主要关注点…

【WebGis开发 - Cesium】三维可视化项目教程---图层管理基础

目录 引言一、功能设计1. 主体功能2. 细节问题 二、代码实现1. 树形控件2. 全局状态准备3. 创建图层控制方法3.1 加载、卸载方法编写3.2 统一对外暴露入口3.3 提供图层类别的可拓展性3.1 完整代码 4. 效果展示5. hooks函数使用方法 三、总结 引言 本教程主要是围绕Cesium这一开…

华为云服务器公网ip访问不通解决

问题:用弹性公网IP登录超时,ping不通,但是VNC方式可以登陆成功 解决:执行ifconfig,看到eth0网卡没有获取到 ifconfig 执行dhclient自动获取下网卡 : dhclient 再次执行ifconfig:网卡已经获…

【AI论文精读3】RAG论文综述1-P1

AI知识点总结:【AI知识点】 AI论文精读、项目、思考:【AI修炼之路】 简介 论文中英文名 Retrieval-Augmented Generation for Large Language Models: A Survey 面向大型语言模型的检索增强生成:综述 论文地址 arxiv地址:http…

知识蒸馏介绍

一、知识蒸馏介绍 1.1 概念介绍 知识蒸馏(knowledge distillation)是模型压缩的一种常用的方法,不同于模型压缩中的剪枝和量化,知识蒸馏是通过构建一个轻量化的小模型,利用性能更好的大模型的监督信息,来…