webpack地址代理

1 篇文章 0 订阅

项目开发阶段前后端分离模式,这就涉及到了开发地址和部署地址不一样,如果前端把地址写死的话,那样每次部署都要修改地址,这样可能会导致有时候修改遗漏等问题

那么考虑下,我们在开发阶段是不是可以通过地址代理来解决前端地址写死的问题

vue2.0的webpack提供了这个功能

比如一个完整的请求地址是 http://172.31.4.247/sc1902/login/oauth/token

webpack的配置
找到config文件下的index.js文件配置代理,注意的是websocket的代理要把协议改成(ws)

dev: {
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
      '/sc1902':{
        target:'http://172.31.4.247',
        changeOrigin:true
      },
      '/sc1902/handler':{
        target:'ws://172.31.4.247',
        ws: true,
        changeOrigin:true
      },
      '/mapcache':{
        target:'http://172.31.4.247',
        changeOrigin:true
      }
    },

api的写法
axios请求的地址写法

axios.post( '/sc1902/login/oauth/token', Qs.stringify(param))
      .then(function (response) {
        
      })
      .catch(function (err) {
        
      });

websocket的写法
这里需要注意的是下面的写法

new WebSocket('/sc1902/handler')

报错 URL is invalid

解决方法如下:

new WebSocket('ws://'+location.host+'/sc1902/handler')

一个小知识点

location.host   包含端口
location.hostname   不包含端口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值