Express Vue.js devServer.proxy出现问题
因此,在我目前正在开发的应用程序中,我尝试将请求从Vue前端代理到Express服务器。express服务器正在本地主机5000上运行。这在我的vue.config.js中: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&
"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
中使用哪个端口?这工作得很好!谢谢我仍然不明白它在某些组件中是如何工作的,但正斜杠起到了作用。