VUE-Cli5配置IFrame反向代理

项目结构 

因为项目需求,将项目分成了外侧导航框架与内侧IFrame内容区域,这样在开发过程中,为解决IFrame跨域问题,需要使用反向代理将子页面代理到导航框架中。

导航框架配置代理

const { defineConfig } = require('@vue/cli-service')
const devConfigInfo = require('./development.config')

module.exports = defineConfig({
  ...其他配置项
  devServer: {
    proxy: {
       // IFrame模块1
      '^/modular1': {
        target: 'http://ip:端口/',
        changeOrigin: true
      },
      // IFrame模块2
      '^/modular2': {
        target: 'http://ip:端口/',
        changeOrigin: true
      },
      // 接口
      '/dev-api/base': {
        target: devConfigInfo.baseApi,
        changeOrigin: true,
        pathRewrite: { '^/dev-api': '' }
      }
    }
  }
})

IFrame路径

模块1
<iframe id="iframe2350" src="/modular1/#/子模块路由" style="">
模块2
<iframe id="iframe2350" src="/modular2/#/子模块路由" style="">

内容模块(IFrame)配置代理

内容模块配置代理,主要是配置该模块的请求地址。如果按以下配置则直接会请求导航框架的配置的代理若导航框架没有配置响应的接口反向代理则会出现404。

// 以下是错误示范 
devServer: {
    proxy: {
      '/dev-api/接口地址1': {
        target: devConfigInfo.baseApi,
        changeOrigin: true,
        pathRewrite: { '^/dev-api': '' }
      },
      '/dev-api/接口地址2': {
        target: devConfigInfo.eBaseApi,
        changeOrigin: true,
        pathRewrite: { '^/dev-api': '' }
      }
    }
  }

正确的配置是这样的,在axios的baseUrl配置如下代码

const service = axios.create({
  baseURL: '/模块1/dev-api',
  // 超时时间 默认20秒
  timeout: 20000,
  withCredentials: true
})

之后再再vue.config.j中配置

 devServer: {
    proxy: {
      '/模块1/dev-api/接口地址1': {
        target: devConfigInfo.baseApi,
        changeOrigin: true,
        pathRewrite: { '^/模块1/dev-api': '' }
      },
      '/模块1/dev-api/接口地址2': {
        target: devConfigInfo.eBaseApi,
        changeOrigin: true,
        pathRewrite: { '^/模块1/dev-api': '' }
      }
    }
  }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值