vue之proxyTable代理全面配置的方法
发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,本篇内容介绍了"vue之proxyTable代理全面配置的方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2024年12月12日vue之proxyTable代理全面配置的方法
本篇内容介绍了"vue之proxyTable代理全面配置的方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
介绍
vue的proxyTable是用于开发阶段配置跨域的工具,可以同时配置多个后台服务器跨越请求接口,其真正依赖的npm包是http-proxy-middleware,在github上拥有更丰富的配置,按需配置咯。
配置分离
我将代理配置抽离出2个配置文件
1. config.dev.js
用于配置后端服务器地址、端口和IP等
2. proxyTableHandler.js
用于添加代理的配置项
config.dev.js如下
/** 开发环境服务器配置* @Author: wujiang* @Date: 2018-08-16 11:32:36* @Last Modified by: wujiang* @Last Modified time: 2018-08-18 23:04:34*/module.exports = { // 开发环境代理服务器 devProxy: { host: '0.0.0.0', // ip/localhost都可以访问 port: 8080 }, // 后端服务器地址 servers: { default: 'http://localhost:8081/springboot-girl', jsp: 'http://localhost:8082/springboot-jsp' }}
proxyTableHandler.js如下
/* * 开发环境代理配置 生产环境请使用 nginx 配置代理 或 其他方式 * @Author: wujiang * @Date: 2018-08-16 17:16:55 * @Last Modified by: wujiang * @Last Modified time: 2018-08-19 09:18:18 */const configDev = require('../config.dev')module.exports = (() => { let proxyApi = {} let servers = configDev.servers for (let key of Object.keys(servers)) { proxyApi[`/${key}`] = { // 传递给http(s)请求的对象 target: servers[key], // 是否将主机头的源更改为目标URL changeOrigin: true, // 是否代理websocket ws: true, // 是否验证SSL证书 secure: false, // 重写set-cookie标头的域,删除域名 cookieDomainRewrite: '', // 代理响应事件 onProxyRes: onProxyRes, // 重写目标的url路径 pathRewrite: { [`^/${key}`]: '' } } } return proxyApi})()/** * 过滤cookie path,解决同域下不同path,cookie无法访问问题 * (实际上不同域的cookie也共享了) * @param proxyRes * @param req * @param res */function onProxyRes (proxyRes, req, res) { let cookies = proxyRes.headers['set-cookie'] // 目标路径 let originalUrl = req.originalUrl // 代理路径名 let proxyName = originalUrl.split('/')[1] || '' // 开发服url let server = configDev.servers[proxyName] // 后台工程名 let projectName = server.substring(server.lastIndexOf('/') + 1) // 修改cookie Path if (cookies) { let newCookie = cookies.map(function (cookie) { if (cookie.indexOf(`Path=/${projectName}`) >= 0) { cookie = cookie.replace(`Path=/${projectName}`, 'Path=/') return cookie.replace(`Path=//`, 'Path=/') } return cookie }) // 修改cookie path delete proxyRes.headers['set-cookie'] proxyRes.headers['set-cookie'] = newCookie }}
使用方式 config/index.js
const configDev = require('./config.dev')module.exports = { dev: { // Paths assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: proxyTableHandler, // Various Dev Server settings host: configDev.devProxy.host, // can be overwritten by process.env.HOST port: configDev.devProxy.port, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined autoOpenBrowser: false, errorOverlay: true, notifyOnErrors: true, poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- // Use Eslint Loader? // If true, your code will be linted during bundling and // linting errors and warnings will be shown in the console. useEslint: true, // If true, eslint errors and warnings will also be shown in the error overlay // in the browser. showEslintErrorsInOverlay: false, /** * Source Maps */ // https://webpack.js.org/configuration/devtool/#development devtool: 'cheap-module-eval-source-map', // If you have problems debugging vue-files in devtools, // set this to false - it *may* help // https://vue-loader.vuejs.org/en/options.html#cachebusting cacheBusting: true, cssSourceMap: true }}
效果如下
以/jsp开头的api
以/default开头的api
"vue之proxyTable代理全面配置的方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
配置
代理
服务器
开发
服务
环境
目标
路径
方法
不同
内容
后台
地址
实际
开头
方式
更多
知识
实用
学有所成
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
华为服务器芯片性能
计算机网络技术 朱守业
服务器集中管理网络
拉结尔官方服务器下载
国土三调数据库可查询时间
发发流水记账 数据库
电脑软件开发怎么赚钱
web后台数据库
四大行软件开发岗一天上几小时班
深圳远云互联网科技有些公司
萌宠部落哪个服务器最好
网络安全标语知多少
软件开发人的思维方式
徐汇区银联网络技术咨询报价
暗黑战网服务器配置
i5 3230m软件开发
ssd和hdd服务器
数据库操作查询语句
医疗信息网络技术课程
河北定制网络技术服务项目
怎么找到软件开发团队
阿里云服务器续费说明
vb6文本框和数据库比对
怎么看服务器的网关
华为服务器h22h-05重启
服务器误改计算机名称
查询主机服务器ip地址
台湾法国服务器
达内40岁能学软件开发吗
网络安全设备指的是什么