说下vue工程中代理配置proxy
这个代理配置不需要后台进行ngnix代理跳转了,前端可以做。在vue.config.js文件中进行配置,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | module.exports = { publicPath: process.env.VUE_APP_BASEURL || '/' , // 修改webpack的配置 configureWebpack: { // 把原本需要写在webpack.config.js中的配置代码 写在这里 会自动合并 externals: { 'T' : 'T' } }, // devServer 选项单独配置 devServer: { https: false , proxy: { '/sys' : { target: process.env.VUE_APP_API_URL, //这个是全局的环境配置变量,单独建立的文件,以VUE_APP_开头的变量,每个文件中都可以访问,假设这里是http://www.sweeeper.com changeOrigin: true , onProxyReq: function (proxyReq) { proxyReq.removeHeader( 'origin' ) } }, '/v1' : { target: process.env.VUE_APP_API_URL, changeOrigin: true , onProxyReq: function (proxyReq) { proxyReq.removeHeader( 'origin' ) } } }, before: app => { // applyMock(app) } } } |
这里的‘/sys’是所有的axios里边的以这个开头的请求都替换成对应的http地址,这就也是所谓的前后端分离,只需要后端布置在服务器上,前端知道地址就可以进行交互。
如果已经配置了代理那么就不需要在axios中配置基地址了,因为给定的url里边已经替换了相关的字段。
像下边的就不需要设置再baseURL。(login.vue登陆文件中)
1 2 3 4 | const newAxios = axios.create({ // baseURL: ROOT_URL, timeout: 1500000 }) |
举个登陆请求的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import { request } from '@/common/js/axios' import MD5 from 'crypto-js/md5' import { getToken } from '@/common/js/cache' export function login ({ userNo, password }) { const url = '/sys/security/logon' return request({ url, method: 'post' , data: { userNo, password: MD5(password).toString() } }) } |
那么请求时候这个地址就变成了:http://www.sweeeper.com/security/logon
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2015-07-04 图像质量评价指标之Matlab实现