Vue2和Vue3本地跨域代理

文章介绍了如何在Vue2项目中使用VueCLI配置跨域代理,以及Vue3中通过Vite的vite.config.js实现动态代理。重点比较了两者在开发服务器和配置文件上的不同点。
摘要由CSDN通过智能技术生成
Vue2

使用 Vue CLI 来创建和管理你的 Vue 项目,那么你可以在 vue.config.js 文件中配置代理来解决跨域.

VUE_APP_BASE_API = '/dev-api'

// 普通版
module.exports = {  
  devServer: {  
    proxy: {  
      '/api': {  
        target: '目标地址域名', // 目标地址  
        changeOrigin: true, // 开启代理,在本地创建一个虚拟服务器,然后发送请求的数据,会同时会收到请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题  
        pathRewrite: {  
          '^/api': '' // 路径重写,移除路径中的/api  
        }  
      }  
    }  
  }  
}

//  动态版
module.exports = {  
  devServer: {  
    proxy: {  
      [process.env.VUE_APP_BASE_API]: {
        target: '目标地址域名', // 目标地址  
        changeOrigin: true, // 开启代理,在本地创建一个虚拟服务器,然后发送请求的数据,会同时会收到请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题  
        pathRewrite: {  
          ['^'+process.env.VUE_APP_BASE_API]: "", // 路径重写,移除路径中的/api  
        }  
      }  
    }  
  }  
}
Vue3

使用 Vite 的本地跨域代理与 Vue CLI 的设置方式在某些方面是不同的。Vite 使用的是基于 Rollup 的开发服务器,而 Vue CLI 使用的是基于 webpack 的开发服务器。因此,在配置跨域代理时,它们可能有不同的设置方式和文件位置。

在 Vite 项目中,跨域代理的配置通常在 vite.config.js 文件中

VITE_BASE_API= '/dev-api'

// 普通版
// vite.config.js  
import { defineConfig } from 'vite'  
import { resolve } from 'path'  
  
export default defineConfig({  
  server: {  
    proxy: {  
      // 选项写法  
      '/api': {  
        target: '目标地址域名', // 目标地址  
        changeOrigin: true, // 开启代理,在本地创建一个虚拟服务器  
        rewrite: (path) => path.replace(/^\/api/, '') // 路径重写,移除路径中的/api  
      }  
    }  
  }  
  // 其他 Vite 配置...  
})

// 动态版

import { fileURLToPath, URL } from 'node:url'

import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'

export default( {mode}:{mode:any}) =>{
  const env = loadEnv(mode,process.cwd());
  return defineConfig({
    base: env.VITE_BASE_URL,
    plugins: [
      vue(),
    ],
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
      }
    },
    server:{
      open:false,
      host:'0.0.0.0', // 监听所有可用的网络接口  
      proxy:{
        [env.VITE_BASE_API]:{
          target:'目标地址域名', // 目标地址
          changeOrigin: true, // 开启代理,在本地创建一个虚拟服务器
          rewrite:(path) => path.replace(new RegExp(`^${env.VITE_BASE_API}`),''), // 路径重写,移除路径中的【env.VITE_BASE_API】
        }
      }
    }
  })
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值