vue3请求代理proxy中pathRewrite失效

news/2024/7/10 0:52:23 标签: vue.js, javascript, vue

问题引入

vue3配置请求代理proxy的时候pathRewrite失效。
有这样一个例子,作用是为了把所有以/api开头的请求代理到后端的路径和端口上,在vue.config.js配置文件中 设置了代理跨域和默认端口。但是重新运行之后发现端口是改了,但是路径仍然没有修改,没有把我/api带头的路径重写掉

vue.config.js

vue">devServer: {
    open: true, // opens browser window automatically
    proxy: {
        // 将所有以/api开头的请求代理到
        "/api": {
        	target: "http://localhost:8080",
            pathRewrite: {
                "^/api": "",
            },//没有任何效果
            changeOrigin: true,
        },
    },
},

控制台中无法看到转发后的路径,使用以下方法可以在浏览器控制台Response Header中看见x-res-proxyUrl转发后真实路径

vue.config.js

vue">devServer: {
    open: true, // opens browser window automatically
    proxy: {
        // 将所有以/api开头的请求代理到
        "/api": {
        	target: "http://localhost:8080",
            pathRewrite: {
                "^/api": "",
            },//没有任何效果
            changeOrigin: true,
            // 显示请求代理后的真实地址
            bypass(req, res, options) {
                const proxyUrl = new URL(req.url || "", options.target)?.href || "";
                res.setHeader("x-res-proxyUrl", proxyUrl);
            },
        },
    },
},

查看请求代理后的路径

解决方案

vue3中不支持pathRewrite的写法,可以修改为

vue">rewrite: (path) => path.replace(/^\/api/, ""),

vue.config.js

vue">devServer: {
    // https: true
    open: true, // opens browser window automatically
    proxy: {
        // 将所有以/api开头的请求代理到
        "/api": {
            target: "http://localhost:8080",
            //改成这样!!!!
            rewrite: (path) => path.replace(/^\/api/, ""),
            changeOrigin: true,
            // 显示请求代理后的真实地址
            bypass(req, res, options) {
                const proxyUrl = new URL(req.url || "", options.target)?.href || "";
                res.setHeader("x-res-proxyUrl", proxyUrl);
            },
        },
    },
},

http://www.niftyadmin.cn/n/5233106.html

相关文章

人工智能原理复习--确定性推理

文章目录 上一篇推理概述自然演绎推理合适公式 归结演绎推理归结原理归结反演 提升归结效率下一篇 上一篇 人工智能原理复习–知识表示(二) 推理概述 推理就是按某种策略由已知判断推出另一判断的思维过程 分类: 演绎推理、归纳推理、默…

超简单的node脚本,将xlsx文件转化为json

开发场景,在一个官网中,官网的设计非常简单,就是一个纯静态的页面,全网站仅一个地方调一下接口,发一下用户填写的信息到运营同学的邮箱,这些数据不会记录在数据库,我需要做一个这样的下拉框。 但…

高效转码工具Compressor for Mac,让视频处理更轻松

在现如今的数字时代,视频内容已经成为人们生活中不可或缺的一部分。无论是在社交媒体上分享生活点滴,还是在工作中制作专业的营销视频,我们都希望能够以高质量、高效率地处理和传输视频文件。而Compressor for Mac作为一款强大的视频转码工具…

阿里云服务器跨区域迁移(多数据盘)

方法一. 复制镜像,共享镜像(只有系统盘没有数据盘的情况!) 正常阿里云同区域服务器迁移只需要选择共享镜像即可,但是由于新老服务器区域限制所以需要先复制到新服务器区域再进行共享 选择服务器实例先创建后复制 比如…

基于YOLOv8深度学习的120种犬类检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战、狗类检测、犬种识别

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

【设计模式-4.1】行为型——策略模式

说明:本文介绍设计模式中的行为型设计模式中的,策略模式; 计算器 策略模式属于行为型设计模式,关注对象的行为。例如,目前有一个计算器类,可对两个数进行加减计算,如下: &#xf…

电子学会C/C++编程等级考试2022年03月(四级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:拦截导弹 某国为了防御敌国的导弹袭击, 发展出一种导弹拦截系统。 但是这种导弹拦截系统有一个缺陷: 虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。 某天, 雷达捕捉到敌国的导弹来袭。…

大数据Doris(三十二):Doris高级功能

文章目录 Doris高级功能 一、​​​​​​​表结构变更