升级到vue-cli-3代理不再起作用

问题描述 投票:0回答:1

我已经从webpack 3升级到了vue-cli-3,现在开发中的代理不再起作用。

我正在使用axios呼叫被代理的/api/action/someAction

https://www.xyz.xy/ui/proxy/ServiceProxyServlet?server=0&serverpath=/api/action/someAction

我使用了Webpack 3中的proxyTable配置

proxyTable: {
  '/api': {
    target: 'https://www.xyz.xy/ui/proxy/ServiceProxyServlet?server=0&serverpath=',
    changeOrigin: true,
    secure: false,
  },
},

正在工作。

现在我已经升级到新的vue-cli-3,现在我正在使用

devServer: {
 proxy: {
   "/api": {
     target: "https://www.xyz.xy/ui/proxy/ServiceProxyServlet?server=0&serverpath=",
     changeOrigin: true,
     secure: false,
   }
 }

据我所知,应该是相同的。但它不再起作用了。

我试图通过搜索stackoverflow并在vue-cli git repo上寻找问题来解决这个问题。我知道使用正则表达式的一些线索,因此我尝试过

'/api'
'^/api'
'/api/'

但是那并没有解决问题。我也尝试过添加一个custoum pathRewrite:

pathRewrite: {
  '^/api': '/api'
}          

和调试路径重写

pathRewrite: function (path, req) {
  console.log('path ' + path + "\n url " + req.url + " host " + req.host);
  return path;
}

显示主机仍然是本地主机,而不是https://www.xyz.xy,我得到了404。

我觉得我在这里缺少一些细节...可能是axios的版本有所不同?我使用的是0.18.0,现在使用vue-cli-3的是0.19.0 ...

任何人都可以帮忙吗?

proxy axios vue-cli-3
1个回答
0
投票

有相同的问题。

我不知道它是如何关联的,但是像off. docs中所述添加“ ws”选项很有帮助。

module.exports = {
  devServer: {
    proxy: {
      '^/api': {
        target: 'http://mysexyhost',
        ws: true,
        changeOrigin: true
      }
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.