Vue项目代理请求AdonisJS接口,正确登录时报ECONNRESET代理错误
Vue代理AdonisJS登录成功报ECONNRESET解决方案
该问题核心是登录成功时AdonisJS会触发会话创建逻辑,返回会话Cookie或执行重定向,和Vue devServer代理的默认连接配置冲突,错误凭据不会触发该逻辑因此请求正常,可按以下步骤修复:
- 调整Vue代理配置,移除冗余项和冲突配置,修改后
vue.config.js配置如下:
devServer: { proxy: { '^/api': { target: 'http://127.0.0.1:3333', secure: false, changeOrigin: true, logLevel: 'debug', timeout: 10000, proxyTimeout: 10000, followRedirects: true, onProxyReq: (proxyReq) => { proxyReq.removeHeader('origin') } } } }
- 修改AdonisJS服务配置,开启代理信任并调整连接超时参数:
打开Adonis项目下config/app.ts(Adonis v4版本为config/app.js),找到http配置段,修改为如下内容:
http: { allowMethodSpoofing: false, subdomainOffset: 2, generateRequestId: true, trustProxy: true, keepAliveTimeout: 30000, headersTimeout: 35000, forceContentNegotiationTo: 'application/json' }
- 检查跨域配置(仅Session认证场景需要)
打开Adonis项目下config/cors.ts,确认两项配置:origin值设置为Vue开发服务地址http://localhost:8080,不可使用通配符*credentials值设置为true
如果项目使用Token认证而非Session认证,直接修改Adonis登录接口逻辑,登录成功后返回Token而非执行302重定向,即可直接解决该问题。
内容的提问来源于stack exchange,提问作者azam
相关产品推荐
相关产品推荐

