首页 > 其他分享 >vue中使用axios请求post接口为什么先发起OPTIONS请求再发起post请求?

vue中使用axios请求post接口为什么先发起OPTIONS请求再发起post请求?

时间:2023-10-28 17:06:32浏览次数:37  
标签:浏览器 请求 发起 POST 服务器 post OPTIONS 跨域

vue中使用axios请求post接口为什么先发起OPTIONS请求再发起post请求?_跨域请求

在使用Axios进行跨域POST请求时,浏览器会先发起一个OPTIONS请求,这是因为浏览器执行了跨域请求时的预检请求(Preflight Request)。这是一个安全性措施,旨在确保跨域请求不会导致安全风险。

1、跨域请求的安全性: 当前端应用和后端API位于不同的域或端口时,浏览器会执行同源策略,以防止跨站点请求。跨域请求需要发送HTTP OPTIONS请求以获取有关服务器是否允许跨域请求的信息。

2、CORS(跨域资源共享)规范: 浏览器遵循CORS规范来执行跨域请求的预检操作。服务器需要在响应中包含特定的CORS标头,以允许或拒绝请求。

3、HTTP OPTIONS请求: 预检请求是HTTP OPTIONS请求,它包含跨域请求的信息,如请求方法、头信息等。服务器会在响应中指定允许的HTTP方法、头信息、来源等。

4、浏览器执行预检: 在发送实际的POST请求之前,浏览器会执行OPTIONS请求来确认服务器是否允许该请求。只有在服务器明确响应预检请求并允许跨域请求时,浏览器才会发送实际的POST请求。

当您在Vue中使用Axios进行POST请求时,浏览器会自动发送OPTIONS请求,以验证服务器是否支持跨域请求。如果服务器配置了CORS规范并明确允许跨域请求,那么浏览器会发送POST请求。这是一种安全措施,以确保跨域请求不会导致潜在的安全问题。如果服务器不允许跨域请求,浏览器将拒绝发送实际的POST请求。在开发和部署时,确保服务器配置了适当的CORS规范,以允许预检和实际请求。


更多技术文章,技术资源请关注公众号:架构师宝库

更多免费高清电子书PDF版本下载  https://book.sjtt.cc

作者简介: 公众号【架构师宝库】,头条号【架构师老卢】20年资深软件架构师,分享编程、软件设计经验,教授前沿技术,分享技术资源(每天分享一本电子书),分享职场感悟。

标签:浏览器,请求,发起,POST,服务器,post,OPTIONS,跨域
From: https://blog.51cto.com/u_4701487/8071955

相关文章

  • 等待axios请求的返回值来使用
     我们只要关心代码里面的async和await就行了//apiimportsysConfigfrom'@/api/systemManagement/config'asyncgetSysConfigInfo(id:number|string){constcoolieValue=cookies.get("setup_sysmConfigManage_time")if(!coolie......
  • 支持自动生成API文档 Apipost 真香
    在数字化时代,API已经成为了应用程序之间进行通信的关键桥梁。随着API的普及和复杂性的增加,API研发和管理也面临着越来越多的挑战。为了更好地应对这些挑战,Apipost提供了一整套API研发工具,包括API设计、API调试、API文档和API自动化测试等功能。本文将深入介绍Apipost的优势和特点,助......
  • 支持自动生成API文档 Apipost 真香
    在数字化时代,API已经成为了应用程序之间进行通信的关键桥梁。随着API的普及和复杂性的增加,API研发和管理也面临着越来越多的挑战。为了更好地应对这些挑战,Apipost提供了一整套API研发工具,包括API设计、API调试、API文档和API自动化测试等功能。本文将深入介绍Apipost的优势和特点,......
  • axios中post请求后台req.body接收不到参数的解释
    axios的get请求都是把参数放在params属性下,在post请求下有两种方法,一种是放在params属性中,适合传参较少且数据较简单的情况,另外一种是放在data属性中,如果传参中含有引号、等号、拼接的json串或传参的数据量较大时候使用;后台的服务器的配置,node后台一般会配置中间件解析数据,包含......
  • python+playwright 学习-81 page.expect_request()捕获网络请求
    前言page.expect_request()可以捕获网页上发出去的请求,当有多个请求时,可以根据请求url,请求方式判断。expect_request官方文档示例withpage.expect_request("http://example.com/resource")asfirst:page.get_by_text("triggerrequest").click()first_request=first.val......
  • openEuler安装postgresql
    yuminstall-ygccmakereadline-develzlib-devellibicu-develcd/usr/localtarzxvfpostgresql-12.16.tar.gzcdpostgresql-12.16./configure--prefix=/usr/local/postgresqlmake-j8&&makeinstalladduserpgsqlmkdir/usr/local/postgresql/datach......
  • Controller 中的请求方法,private 和 public有什么区别?别用错了!
    作者:hinotoyk链接:https://juejin.cn/post/6910215219822362632背景:某日在公司中撸代码的时候,在一个常用的controller中添加一个方法,测试时突然报错说注入的service为null,捣鼓一阵发现后是方法修饰符写成private,修改成public后搞定。为什么会产生这个问题呢?就自己测试一下是哪......
  • 理解Postgres的IOPS:为什么数据即使都在内存,IOPS也非常重要
    理解Postgres的IOPS:为什么数据即使都在内存,IOPS也非常重要磁盘IOPS(每秒输入/输出操作数)是衡量磁盘系统性能的关键指标。代表每秒可以执行的读写操作数量。对于严重依赖于磁盘访问的PG来说,了解和优化磁盘IOPS对实现最佳性能至关重要。本文讨论IOPS相关主题:IOPS是什么、如何影响PG、......
  • postman测试
    <?xml version="1.0" encoding="utf-8" ?><Request><Datetime>1698324845850</Datetime> <Authorization><AppKey>6773dfd985c249a69916445137fb46c8</AppKey> <Sign>6cf4a44ed62b6c64e73792eb79f7......
  • Langchain语言模型提问请求,提问使用非标准的sse请求获取流式数据,java后台版解决方式
    问题描述:请求后接收的数据流,不走EventSourceListener的onEvent事件,但onOpenonClosed都是正常走的。 问题原因:默认的接口返回是StreamingResponse不是EventSourceResponse,无法走标准sse协议的onEvent()方法 目标需求:在不改动模型方面接口的情况下,接收到流式数据并通过sse协......