Express Vue.js devServer.proxy出现问题

Express Vue.js devServer.proxy出现问题,express,vue.js,Express,Vue.js,因此,在我目前正在开发的应用程序中,我尝试将请求从Vue前端代理到Express服务器。express服务器正在本地主机5000上运行。这在我的vue.config.js中: "devServer": { "proxy": { "^/api/": { "target": "http://localhost:5000", "ws&

因此,在我目前正在开发的应用程序中,我尝试将请求从Vue前端代理到Express服务器。express服务器正在本地主机5000上运行。这在我的vue.config.js中:

    "devServer": {
    "proxy": {
      "^/api/": {
        "target": "http://localhost:5000",
        "ws": true,
        "changeOrigin": true
      }
    }
  },
我不明白的是,为什么在大多数情况下,只使用api/routename向服务器发送请求就可以了。那么只有两个组件不起作用。在其工作的组件中,GET请求如下所示,例如:

axios.get('api/base/verified')
.then...

然后在另外两个组件中,根据相同的原则,仅请求api/路由名称,我得到了错误。在开发模式中,请求会突然发送到http://localhost:8080/api...,当尝试部署时,它们将转到5000,但我收到以下错误消息:

js:184获取http://localhost:5000/api/content/course/5f54f3c60bb7a30017c1abf2 网络::错误连接被拒绝


是否有人知道交易是什么,以及代理行为为何如此不同,具体取决于环境和组件?

您应该始终使用带有前导斜杠的url,例如
/api/base/verified
参见此。所以我猜在你的情况下,两个组件可能在不同的路径中使用

对于不同的环境,它不同的原因是
代理
仅在开发服务器中工作,这就是为什么他们调用
devServer


我不知道你为什么会出现这样的错误。似乎必须有另一个配置可以转到端口
5000
,例如nginx中的代理,但是
ERR\u CONNECTION\u densed
通常意味着该端点没有服务器。

你在部署
8080
5000
中使用哪个端口?这工作得很好!谢谢我仍然不明白它在某些组件中是如何工作的,但正斜杠起到了作用。