vue3 vite配置跨域及不生效问题解决

 更新时间:2023年07月18日 10:39:20   作者:Motion_zq  
这篇文章主要介绍了vue3 vite配置跨域以及不生效问题,本文给大家分享完美解决方案,需要的朋友可以参考下

vue3 vite配置跨域以及不生效问题

1. 在vite.config中添加配置

server: {
    host: "0.0.0.0",
    cors: true,
    port: 8991,
    open: false, //自动打开
    proxy: {
      // 这里的ccc可乱写, 是拼接在url后面的地址 如果接口中没有统一的后缀可自定义
      // 如果有统一后缀, 如api, 直接写api即可, 也不用rewrite了
      "^/ccc": {
        target: "http://116.62.200.158", // 真实接口地址, 后端给的基地址
        changeOrigin: true, // 允许跨域
        rewrite: (path) => path.replace(/^\/ccc/, ""), // 将ccc替换为空
      },
    },
  },

2. 在.env.development中配置开发环境下的基地址(没有该文件夹手动新建)

VITE_BASEURL='/ccc'

3. 配置axios的基地址

const instancs = axios.create({
  baseURL: import.meta.env.VITE_BASEURL,
});

最后:

我之前是犯过一个错误的, 导致我搞了半天都没搞好... 就是配置完vite.config, 那个/ccc后缀是接口没有的自己加的, 那么就要手动加上去了...

这是我们公司后端的问题, 大部分后端都会有统一的后缀的, 比如api, 但是我这后端没按照这样的规范来, 然后自己也比较菜... 如果这样配置到时候生产就不能这样写了, 目前我这样配置在开发环境下能正常跑。

解决vue3+vite跨域失败问题

vue3+vite用proxy跨域出现的问题

一、改错前的代码

vite.config.js中的代码

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  server: {
    proxy: {
      '/api': {
        target: "http://gmall-h5-api.atguigu.cn", //跨域地址
        changeOrigin: true, //支持跨域
        rewrite: (path) => path.replace(/^\/api/, '')   //重写路径
      }
    }
  }
})

发送请求的文件中的跨域请求代码

import axios from 'axios'
axios.get('/api/product/getBaseCategoryList').then((res) => {
    console.log('success:' + res.data);
}).catch((err) => {
    console.log('failed:' + err.data);
});

出现这些错误是因为 rewrite,写这行代码时要看接口有没有带上/api,如果接口本身就有/api则不需要重写路径,将重写路径的这行代码删掉就好了

二、改正后vite.config.js代码

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  server: {
    proxy: {
      '/api': {
        target: "http://gmall-h5-api.atguigu.cn", //跨域地址
        changeOrigin: true, //支持跨域
      }
    }
  }
})

之后就跨域正常跨域了

三、如果想要保留rewrite这行代码,就需要添加拦截器,配置baseURL:“/api”

发送请求的文件中的跨域请求代码如下

import axios from 'axios'
const requests = axios.create({
    baseURL:"/api",
    timeout:5000
});
//请求拦截器,在发送请求之前,请求拦截器可以检测到,可以在请求发出去之前做一些事情
requests.interceptors.request.use(config=>{
    return config;
});
//相应拦截器
requests.interceptors.response.use((res)=>{
    return res.data;
},(error)=>{
    alert(error.message);
    return new Promise();
})
requests.get('/api/product/getBaseCategoryList').then((res) => {
    console.log('success:' + res.data);
}).catch((err) => {
    console.log('failed:' + err.data);
});

这样写也可以跨域成功

到此这篇关于vue3 vite配置跨域以及不生效问题的文章就介绍到这了,更多相关vue3 vite配置跨域内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue前端项目部署的三种方案详解

    Vue前端项目部署的三种方案详解

    这篇文章主要介绍了Vue前端项目部署的三种方案,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2024-08-08
  • vue项目兼容IE浏览器的教程步骤

    vue项目兼容IE浏览器的教程步骤

    Vue的小伙伴们,困扰大家的IE浏览器支持Vue的问题,目前已经找到了一个比较好的解决方案,下面这篇文章主要给大家介绍了关于vue项目兼容IE浏览器的教程步骤,需要的朋友可以参考下
    2023-03-03
  • vue实现登录时的图片验证码

    vue实现登录时的图片验证码

    这篇文章主要为大家详细介绍了vue实现登录时的图片验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • vue项目如何去掉URL中#符号的方法

    vue项目如何去掉URL中#符号的方法

    在开发过程中发现路径中带有/#/的标示,而且还去不掉,很丑陋,下面这篇文章主要给大家介绍了vue项目如何去掉URL中#符号的相关资料,文中通过实例代码的非常详细,需要的朋友可以参考下
    2022-07-07
  • vue项目打包优化的方法实战记录

    vue项目打包优化的方法实战记录

    最近入职了新公司,接手了一个新拆分出来的Vue项目,针对该项目做了个打包优化,把经验分享出来,下面这篇文章主要给大家介绍了关于vue项目打包优化的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • vue接入下载文件接口问题

    vue接入下载文件接口问题

    这篇文章主要介绍了vue接入下载文件接口问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • vue elementui 实现搜索栏公共组件封装的实例代码

    vue elementui 实现搜索栏公共组件封装的实例代码

    这篇文章主要介绍了vue elementui 搜索栏公共组件封装,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • vue3清空let arr = reactive([])的实现示例

    vue3清空let arr = reactive([])的实现示例

    本文主要介绍了vue3清空let arr = reactive([])的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03
  • Vue之mixin混入详解

    Vue之mixin混入详解

    这篇文章主要为大家介绍了Vue之mixin混入,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • vue实现显示消息提示框功能

    vue实现显示消息提示框功能

    这篇文章主要介绍了vue实现显示消息提示框功能,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04

最新评论