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配置跨域内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue2和Vue3中如何使用WebSocker封装详解

    Vue2和Vue3中如何使用WebSocker封装详解

    如果项目中多个组件都使用到WebSocket请求,那么我们需要对WebSocket进行封装,方便我们使用,下面这篇文章主要给大家介绍了关于Vue2和Vue3中如何使用WebSocker封装的相关资料,需要的朋友可以参考下
    2024-07-07
  • vue实现简易音乐播放器

    vue实现简易音乐播放器

    这篇文章主要为大家详细介绍了vue实现简易音乐播放器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • vue组件讲解(is属性的用法)模板标签替换操作

    vue组件讲解(is属性的用法)模板标签替换操作

    这篇文章主要介绍了vue组件讲解(is属性的用法)模板标签替换操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • vue中点击下载图片的实现方法

    vue中点击下载图片的实现方法

    这篇文章主要给大家介绍了关于vue中点击下载图片的实现方法,在Vue的模板中,我们可以将下载属性绑定至或元素上,用来实现点击下载,需要的朋友可以参考下
    2023-08-08
  • vue.js  父向子组件传参的实例代码

    vue.js 父向子组件传参的实例代码

    这篇文章主要介绍了vue.js 父向子组件传参的实例代码,需要的朋友可以参考下
    2017-10-10
  • Vue实现类似Spring官网图片滑动效果方法

    Vue实现类似Spring官网图片滑动效果方法

    这篇文章主要介绍了Vue实现类似Spring官网图片滑动效果方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • vue-cli中的webpack配置详解

    vue-cli中的webpack配置详解

    本篇文章主要介绍了vue-cli中的webpack配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • vue实现前端展示后端实时日志带颜色示例详解

    vue实现前端展示后端实时日志带颜色示例详解

    这篇文章主要为大家介绍了vue实现前端展示后端实时日志带颜色示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • vue实现简单的计算器功能

    vue实现简单的计算器功能

    这篇文章主要为大家详细介绍了vue实现简单的计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • Vue实例中el和data的两种写法小结

    Vue实例中el和data的两种写法小结

    这篇文章主要介绍了Vue实例中el和data的两种写法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-11-11

最新评论