当前位置: 首页 > news >正文

vue用vite配置代理解决跨域问题(target、rewrite和changeOrigin的使用场景)

Vite的target、rewrite和changeOrigin的使用场景

1. target

使用场景:target 属性在 Vite 的 vite.config.ts 或 vite.config.js 文件的 server.proxy 配置中指定,用于设置代理服务器应该将请求转发到的目标地址。这通常是一个后端服务的API接口地址。
配置示例:

export default defineConfig({  server: {  proxy: {  '/api': {  target: 'http://192.168.110.188:3091', // 后端API地址  // ... 其他配置  },  },  },  // ... 其他配置  
});

说明:在上面的示例中,/api 是代理路径的前缀,当在前端代码中发起一个以 /api 开头的请求时,Vite 会将这个请求转发到 target 指定的地址。

2. rewrite

使用场景:rewrite 属性是一个函数,用于在将请求转发到目标地址之前修改请求的URL路径。这通常用于移除代理路径前缀,以便后端服务能够正确地处理请求。
配置示例:

export default defineConfig({  server: {  proxy: {  '/api': {  target: 'http://192.168.110.188:3091', // 后端API地址  rewrite: (path) => path.replace(/^\/api/, '') // 移除/api前缀  },  },  },  // ... 其他配置  
});

说明:在上面的示例中,rewrite 函数使用了一个正则表达式 /^/api/ 来匹配以 /api 开头的路径,并使用 replace 方法将其替换为空字符串,从而移除了前缀。这样,当前端代码发起一个以 /api/getList 的请求时,Vite 会将其转发到 http://192.168.110.188:3091/getList,而不是 http://192.168.110.188:3091/api/getList。

3. changeOrigin

**注意:**虽然 changeOrigin 在参考文章中并未直接提及,但它是许多代理配置中常见的属性,包括 Vite 的代理配置。
使用场景:changeOrigin 通常用于在跨域代理请求时更改请求的 origin 头部,使得后端服务认为请求是来自于 target 指定的地址,而不是实际的前端开发环境。
配置示例(假设包含 changeOrigin):

export default defineConfig({  server: {  proxy: {  '/api': {  target: 'http://192.168.110.188:3091',  changeOrigin: true, // 更改请求的origin头部  rewrite: (path) => path.replace(/^\/api/, '')  },  },  },  // ... 其他配置  
});

说明:当 changeOrigin 设置为 true 时,Vite 会自动将请求的 origin 头部设置为 target 指定的地址。这在处理跨域请求时尤为重要,因为一些后端服务会检查请求的 origin 头部来决定是否允许该请求。
总结:

target 用于指定代理的目标地址,通常是后端服务的API接口地址。
rewrite 用于在将请求转发到目标地址之前修改请求的URL路径,通常用于移除代理路径前缀。
changeOrigin(尽管在参考文章中未直接提及)用于在跨域代理请求时更改请求的 origin 头部,以便后端服务能够正确地处理请求。这三个属性通常配合使用,以解决前端开发中的跨域问题。

感谢观看,有帮助的话,点点赞点点关注,谢谢老铁!

相关文章:

vue用vite配置代理解决跨域问题(target、rewrite和changeOrigin的使用场景)

Vite的target、rewrite和changeOrigin的使用场景 1. target 使用场景:target 属性在 Vite 的 vite.config.ts 或 vite.config.js 文件的 server.proxy 配置中指定,用于设置代理服务器应该将请求转发到的目标地址。这通常是一个后端服务的API接口地址。…...

为什么PPT录制没有声音 电脑ppt录屏没有声音怎么办

一、为什么PPT录制没有声音 1.软件问题 我们下载软件的时候可能遇到软件损坏的问题,导致录制没有声音,但其他功能还是可以使用的。我建议使用PPT的隐藏功能,下载插件,在PPT界面的加载项选项卡中就能使用。我推荐一款可以解决录屏…...

JDBC学习笔记(三)高级篇

一、JDBC 优化及工具类封装 1.1 现有问题 1.2 JDBC 工具类封装 V1.0 resources/db.properties配置文件: driverClassNamecom.mysql.cj.jdbc.Driver urljdbc:mysql:///atguigu usernameroot password123456 initialSize10 maxActive20 工具类代码: p…...

c++编译器在什么情况下会提供类的默认构造函数等,与析构函数

我们都知道,在 c 里,编写的简单类,若没有自己编写构造析构函数与 copy 构造函数 与 赋值运算符函数,那么编译器会提供这些函数,并实现简单的语义,比如成员赋值。看 源码时,出现了下图类似的情形…...

SpringBoot3整合Mybatis-Plus3.5.5出现的问题

主要是由于 mybatis-plus 中 mybatis 的整合包版本不够导致的 排除 mybatis-plus 中自带的 mybatis 整合包,单独引入即可 java.lang.IllegalArgumentException: Invalid value type for attribute factoryBeanObjectType: java.lang.Stringat org.springframework.…...

服务器数据恢复—强制上线raid5阵列离线硬盘导致raid不可用的数据恢复案例

服务器数据恢复环境: 某品牌2850服务器中有一组由6块SCSI硬盘组建的raid5磁盘阵列,linux操作系统ext3文件系统。 服务器故障: 服务器运行过程中突然瘫痪。服务器管理员检查阵列后发现raid5阵列中有两块硬盘离线,将其中一块硬盘进行…...

初入阿里云,上手走一波

初入阿里云,上手走一波 一阶:ECSMysqlDMS安装Mysql初始化MysqlMysql操作DMS管理Mysql 二阶:ECSOSS远程连接ECSOSS控制台其他图片服务 三阶:更多搭配操作 可以说个人在日常使用过程中,操作最多的阿里云产品就是阿里云服…...

[C++] 小游戏 斗破苍穹 2.2.1至2.11.5所有版本(中) zty出品

目录 2.8.2 2.9.1 2.10.1 2.10.2 2.10.3 2.10.4 2.10.5 2.8.2 #include<stdio.h> #include<iostream> #include<ctime> #include<bits/stdc.h> #include<time.h> //suiji #include<windows.h> //SLEEP函数 using namespace std; st…...

Javaweb---HTTPS

题记 为了保护数据的隐私性我们引入了HTTPS 加密的方式都有那些呢? 1.对称加密: 加密和解密使用的密钥是同一个密钥 2.非对称加密:有两个密钥(一对),分为公钥和私钥(公钥是公开的,私钥是要藏好的) HTTPS的工作过程(旨在对body和header进行加密) 1.对称加密 上述引出的…...

[已解决]ESP32-C3上传程序成功但没有反应的问题

ESP32-C3上传程序成功但没有反应的问题 ESP32-C3是一款功能强大的微控制器&#xff0c;常用于物联网&#xff08;IoT&#xff09;应用的开发和原型设计。然而&#xff0c;有时候在上传程序成功后&#xff0c;设备却没有任何反应&#xff0c;十分让人费解。通过各种尝试已解决这…...

使用 OCLint进行静态代码分析:一个完整的配置示例

文章目录 0. 概述1. 安装 oclint2. oclint配置文件3. 脚本详解3.1 禁用的规则列表3.2 需要启用的规则代码风格代码复杂性命名规范性能安全性其他 4. 检测执行1. 使用 CMake 生成 compile_commands.json2. 运行 Oclint 0. 概述 OCLint是一个静态代码分析工具&#xff0c;通过词…...

【Linux】线程的互斥

一、进程线程间的互斥相关的背景概念 临界资源&#xff1a;多线程执行流共享的资源就叫做临界资源临界区&#xff1a;每一个线程内部&#xff0c;访问临界资源的代码&#xff0c;就叫做临界区互斥&#xff1a;任何时刻&#xff0c;互斥保证有且只有一个执行流进入临界区&#…...

electron如何让你窗口总是显示在最前面【mac解决全屏窗口alwaysOnTop参数不起作用】

你创建了一个使用Electron框架的应用程序,并希望它在以下情况下始终保持可见: 在切换工作区(桌面)时可见在其他应用程序之上显示当其他应用程序全屏显示时,它也显示在顶部当Keynote处于演示模式时,它也能显示在顶部 特别是当Keynote处于演示模式时,要实现这一点比较困难…...

XR和Steam VR项目合并问题

最近有一个项目是用Steam VR开发的&#xff0c;里面部分场景是用VRTK框架做的&#xff0c;还有一部分是用SteamVR SDK自带的Player预制直接开发的。 这样本身没有问题&#xff0c;因为最终都是通过SteamVR SDK处理的&#xff0c;VRTK也管理好了SteamVR的逻辑&#xff0c;并且支…...

uni-app:利用Vue的原型对象Vue.prototype设置全局方法及其引用

一、在main.js中设置方法checkPermission绑定到Vue.prototype 核心代码 Vue.prototype.$checkPermission function(username) {console.log(Checking permission for:, username); }; 完整代码 import App from ./App// 添加 checkPermission 方法到 Vue.prototype 上,检查…...

django接入djangorestframework-simplejwt步骤

版本&#xff1a;django 4.2 python: 3.8 安装 pip install djangorestframework-simplejwtuser子应用models.py文件 from django.db import models from django.contrib.auth.models import AbstractUserclass User(AbstractUser):mobile models.CharField(max_length11, u…...

前端工程化工具系列(十)—— Browserslist:浏览器兼容性配置工具

Browserslist 是一个能够在不同的前端工具间共享目标浏览器的配置&#xff0c;各工具根据该配置进行代码转译等操作。 具体的这些前端工具为&#xff1a;Autoprefixer、Babel、postcss-preset-env、eslint-plugin-compat、stylelint-no-unsupported-browser-features、postcss-…...

双列集合底层源码

tips: 竖着的箭头&#xff1a;重写 横着的箭头&#xff1a;继承...

【Ardiuno】实验使用ESP32连接Wifi(图文)

ESP32最为精华和有特色的地方当然是wifi连接&#xff0c;这里我们就写程序实验一下适使用ESP32主板连接wifi&#xff0c;为了简化实验我们这里只做了连接部分&#xff0c;其他实验在后续再继续。 由于本实验只要在串口监视器中查看结果状态即可&#xff0c;因此电路板上无需连…...

优化家庭网络,路由器无线中继配置全攻略(中兴E1600无线中继设置/如何解决没有预埋有线网络接口的问题/使用闲置路由实现WIFI扩展)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 网络优化 📒📒 操作步骤 📒💡适用场景🚨 常见问题及解决方案⚓️ 相关链接 ⚓️📖 介绍 📖 在现代家庭生活中,WiFi已经渗透到我们生活的每一个角落,成为了日常生活中不可或缺的一部分。然而,不少用户常常遇到W…...

【ArcGIS微课1000例】0114:基于DEM地形数据整体抬升或下降高程

相关阅读:【GlobalMapper精品教程】083:基于DEM整体抬升或下降地形高程的两种方式 文章目录 一、任务分析二、栅格计算器简介三、地形整体修改四、注意事项一、任务分析 打开软件,加载配套实验数据中的0112.rar中的dem数据,如下所示,dem的高程范围为256.75~342.37米,现在…...

AGP4+ 打包运行闪退,AGP7+ 正常(has code but is marked native or abstract)

问题 安装应用&#xff0c;点击图标启动立马闪退&#xff01; 诡异的闪退&#xff1a;AGP4 打包运行闪退&#xff0c;AGP7 正常 unity 导出的 Android 日志两个主要点&#xff1a; com.android.boot.App 是 Android 的 application 子类&#xff0c;程序入口 java.lang.Class…...

ChatGPT3.5和ChatGPT4.0、ChatGPT4o对比

一、ChatGPT3.5、ChatGPT4.0、ChatGPT4o对比 目前ChatGPT有三个主要版本&#xff0c;分别是ChatGPT3.5、ChatGPT4.0、ChatGPT4o&#xff0c;这三个版本之间有什么差异呢&#xff1f; 对比项ChatGPT3.5ChatGPT4.0ChatGPT4o参数数量1750亿约1万亿未公开输入文本文本、图片文本、…...

【知识拓展】HTTP、WebSocket 和 RPC:区别与使用场景详解

在工作中&#xff0c;HTTP、WebSocket 和 RPC 是三种常见的协议或通信方式&#xff0c;根据资料查阅&#xff0c;本文主要记录它们的区别及其适用的使用场景 HTTP&#xff08;超文本传输协议&#xff09; 概述 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一…...

C语言printf( ) 函数和 scanf( ) 函数格式符的修饰符 “*”有什么作⽤?

一、问题 在 printf( ) 函数和 scanf( ) 函数的格式修饰符有很多&#xff0c;以浮点型数据为例&#xff0c;有%f、%lf、 %3.0f、%.4f等。不同的修饰符表示不同的含义&#xff0c;那么修饰符“*”有什么含义呢&#xff1f; 二、解答 下⾯通过例⼦来证明⼀下这个格式符在 printf…...

java 使用WebClient发送https请求

核心逻辑 绕过ssl证书检查 具体操作 话不多说上代码 // 构建WebClient public static WebClient createWebClient() throws SSLException {SslContext context SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build();HttpClient htt…...

Python 中的内存管理机制

Python 的内存管理机制主要由两个部分组成&#xff1a;垃圾回收机制和引用计数。 垃圾回收机制主要负责检测和回收不再被使用的内存。Python 使用的是自动垃圾回收机制&#xff0c;也就是说程序员不需要手动释放内存。Python 的垃圾回收机制采用了引用计数的方法来追踪和回收不…...

Mac电脑重置网络命令

在Mac电脑上重置网络设置可以通过终端命令来实现。以下是几种方法&#xff0c;包括刷新DNS缓存、重置网络接口&#xff0c;以及重置Wi-Fi设置。 刷新DNS缓存 要刷新DNS缓存&#xff0c;可以使用以下命令&#xff1a; sudo dscacheutil -flushcache; sudo killall -HUP mDNSR…...

C++期末复习总结(2)

目录 1.运算符重载 2.四种运算符重载 &#xff08;1&#xff09;关系运算符的重载 &#xff08;2&#xff09; 左移运算符的重载 &#xff08;3&#xff09;下标运算符的重载 &#xff08;4&#xff09;赋值运算符的重载 3.继承的方式 4.继承的对象模型 5.基类的构造 6…...

[word] word大括号怎么打两行 #其他#其他#微信

word大括号怎么打两行 Word给用户提供了用于创建专业而优雅的文档工具&#xff0c;帮助用户节省时间&#xff0c;并得到优雅美观的结果。 一直以来&#xff0c;Microsoft Office Word 都是最流行的文字处理程序。 作为 Office 套件的核心程序&#xff0c; Word 提供了许多易…...

福建自适应网站建设/北京seo案例

当我们去github上克隆代码仓库的时候&#xff0c;一般有两种选择&#xff0c;一种是https协议&#xff0c;一种是ssh协议。这也是最常用的两种协议了。 HTTPS协议&#xff08;推荐&#xff09; 优点&#xff1a; 对新手友好&#xff0c;使用简单&#xff0c;clone的时候只需…...

个人网站收款问题/如何建立网站服务器

一 . 概述 对一个切入点来说,我们是可以织入大量的通知进行增强的. 这里就出现了一个拦截器链的问题,还有一个问题就是执行顺序的问题. 二 .拦截器链 当出现一个连接点的大量通知的问题时,spring使用的是拦截器链来进行解决, 这和我们一般认为的拦截器链的运行方式时一致,但是我…...

东莞微信网站建设怎样/百度知道合伙人答题兼职

作为过来人这个报错之前出现过好多次,但还是记录一下怎么解决这个问题 删除node-modules(快速删除node-modules之前有做记录),然后在重新instll 一遍就好了...

电商设计网站有哪些功能模块/今日头条(官方版本)

环境: vs2013 windows10 parallel desktop macos big sur 项目: .net framework 2.0 4.0串儿, dll web 串 起因: 从工作室电脑上 也是pd下的win系统 装了 iis的 创建的这么个网站解决方案,然后引用了里面的dll的分项目 回家来编辑的时候, win10里面装了iis以后,启动…...

公司怎么制作网站/怎么申请网站空间

废话不多说&#xff0c;直接给大家贴代码了&#xff0c;代码解决一起问题&#xff01;下面一段代码给大家介绍js无缝滚动实例代码&#xff1a;代码如下所示&#xff1a;无标题文档*{margin:0px;padding:0px;}#div1{width:830px; height:166px; margin:50px auto;position:relat…...

小程序视频网站开发/360收录

在Linux中新建的文本文件换行符是$ Windows中新建的文本换行符是^M$ 在Windows中编辑由Linux中创建的文本&#xff0c;新添加的内容仍然会以Linux的$的格式换行 可以用file命令大概看一下文件的属性 [oraclelocalhost test_move]$ file test.txt    test.txt: ASCII text, …...