Vuecli3配置代理及遇到的问题解决

 更新时间:2023年08月20日 17:05:43   作者:黄金原野  
这篇文章主要为大家介绍了Vuecli3配置代理及遇到的问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

配置方法

内容说明:

此处前端应用的端口为8088,后端应用的端口为8052,域都为localhost

后端接口为http://localhost:8052/Menu/xxxx

配置修改

vue.config.js文件中的proxy部分

devServer: {
    open: true, //配置自动启动浏览器
    // host: '0.0.0.0',
    port: 8088,
    https: false,
    hot: false,
    hotOnly: false,
    // 设置代理
    proxy: {
        '^/Menu/': {
            target: 'http://localhost:8052',  // 代理到的后端接口地址
            ws: true,        //如果要代理 websockets,配置这个参数
            secure: false,  // 如果是https接口,需要配置这个参数
            changeOrigin: true,  //是否跨域
            // pathRewrite: {
            //     '/Menu': '/'
            // }
        }
    }, 
    before: app => {}
},

可能遇到的问题

浏览器依然报错跨域问题,代理未能生效

请求地址的配置文件在.env.development中,原来配置如下:

NODE_ENV = 'development'
VUE_APP_CURRENTMODE='dev'
//local
// 这是后端接口
VUE_APP_API_HOST=http://localhost:8052/Menu

其中VUE_APP_API_HOST为axios请求时,对应的baseURL地址

// axios.js
// create an axios instance
const service = axios.create({
    baseURL: process.env.VUE_APP_API_HOST, // api 的 base_url
    timeout: 5000 // request timeout
})

此时启动VUE项目,依然报错跨域问题。因为此时请求的地址依然是http://localhost:8052开头,并未牵涉到配置的代理,需要将请求的地址修改为http://localhost:8088,即

NODE_ENV = 'development'
VUE_APP_CURRENTMODE='dev'
//local
// 这是后端接口
VUE_APP_API_HOST=http://localhost:8088/Menu

此时,代理会生效,但有可能会报错404

pathRewrite可能会牵涉的路径问题

这里针对的只是后端接口,浏览器中前端的请求与此无关,相关的接口都可以用postman访问测试。

即,可以用postman测试http://localhost:8088/Menu/xxxx等一系列接口,因为vue已经设置了其代理。

(注:此处前端接口指:vue项目运行起来时,浏览器控制台中XHR能看到的接口;

后端接口指经过代理后的(后端)接口,它本身还是后端接口,只是经过了代理,可以用前端的ip和端口通过postman来调用。在某些情况下,前端接口和后端接口会存在路径上的偏差造成请求404)

一般来说,pathRewrite的配置如下,作用是修改请求接口的地址(后端接口)

pathRewrite: {
    '/Menu': '/'
}
// '^/api': '/api' // 这种接口配置出来 http://localhost:8088/api/login
// '^/api': '/' 这种接口配置出来 http://localhost:8088/login

然而这仅仅是理论上的配置,在实际使用中,我遇到了如下问题:

如果在配置中保留'/Menu': '/',能够代理成功url会变成http://localhost:8088/Menu/Menu/xxx

如果去除,能够代理成功的url为http://localhost:8088/Menu/xxxx

甚至在写成'/Menu': '/Menu'时,能够成功代理的url也为http://localhost:8088/Menu/xxx

与理论上的配置相反

不确定是由于版本或者是其他什么问题导致的这一奇怪的现象,如果有人遇到此类的问题,可以考虑修改此处的配置。由于我只需要解决浏览器的跨域问题,只要保证前端调用的接口和后端能够成功代理的接口一致即可。

以上就是Vuecli3配置代理及遇到的问题解决的详细内容,更多关于Vuecli3配置代理的资料请关注脚本之家其它相关文章!

相关文章

  • vue项目动态路由刷新界面白屏undefined问题及解决

    vue项目动态路由刷新界面白屏undefined问题及解决

    这篇文章主要介绍了vue项目动态路由刷新界面白屏undefined问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • vue实现商品详情页功能之商品选项卡

    vue实现商品详情页功能之商品选项卡

    这篇文章主要为大家详细介绍了vue实现商品详情页功能之商品选项卡,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • 基于Vue实现简单的贪食蛇游戏

    基于Vue实现简单的贪食蛇游戏

    贪食蛇是一个非常经典的游戏, 在游戏中, 玩家操控一条细长的直线, 它会不停前进, 玩家只能操控蛇的头部朝向, 一路拾起触碰到之物。本文将用Vue实现这一游戏,感兴趣的可以尝试一下
    2022-04-04
  • Vue中的循环遍历与key值原理解读

    Vue中的循环遍历与key值原理解读

    这篇文章主要介绍了Vue中的循环遍历与key值原理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • vue实现分页的三种效果

    vue实现分页的三种效果

    这篇文章主要为大家详细介绍了vue实现分页的三种效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • Vue实现首页banner自动轮播效果

    Vue实现首页banner自动轮播效果

    这篇文章主要为大家详细介绍了Vue实现首页banner自动轮播效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • vue项目打包后提交到git上为什么没有dist这个文件的解决方法

    vue项目打包后提交到git上为什么没有dist这个文件的解决方法

    这篇文章主要介绍了vue项目打包后提交到git上为什么没有dist这个文件的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Vue使用vue-drag-resize生成悬浮拖拽小球

    Vue使用vue-drag-resize生成悬浮拖拽小球

    这篇文章主要为大家详细介绍了Vue使用vue-drag-resize生成悬浮拖拽小球,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 解决vue v-for src 图片路径问题 404

    解决vue v-for src 图片路径问题 404

    今天小编就为大家分享一篇解决vue v-for src 图片路径问题 404,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 关于vue项目一直出现 sockjs-node/info?t=XX的解决办法

    关于vue项目一直出现 sockjs-node/info?t=XX的解决办法

    sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全双工的浏览器和web服务器之间通信通道,这篇文章主要介绍了vue项目一直出现 sockjs-node/info?t=XX的解决办法,需要的朋友可以参考下
    2023-12-12

最新评论