- 移除导入失败原因中的“第N行”前缀,简化信息展示 - 失败原因编号从字母改为数字序号,提升可读性 - 备注超长提示编号改为数字编号,保持格式统一 - 保留导入失败原因列标红及列宽自动换行等已有样式调整
1.7 KiB
1.7 KiB
2026-08-05 工作记录
排查:改线上接口后前端"运行不了"(CORS 根因)
- 现象:用户将
.env.development的VITE_APP_API改为http://172.16.203.228:8000/api(直连线上/测试后端)后仍运行不了。 - 根因:Saber3 的 axios 配了
withCredentials = true(src/axios.js:79)。该后端(openresty + blade-gateway)对跨域请求返回Access-Control-Allow-Origin: *且Access-Control-Allow-Credentials: true,浏览器规定 credentials 模式下 Allow-Origin 不能是*,非法组合会被直接拒绝 → 所有接口失败。 - 之前用
/api能跑是因为走 Vite 代理,浏览器请求同源 localhost:2888,不触发跨域。 - 已改动:
.env.development的VITE_APP_API改回/api,并加注释说明两种模式。vite.config.mjs的server.proxy['/api']target 改为http://172.16.203.228:8000,并去掉rewrite去掉/api的逻辑(保留/api前缀,对齐 openresty 期望路径)。
- 注意:改
.env/vite.config.mjs后必须重启npm run dev(Vite 启动时加载环境变量,运行中改动不会热更新)。 - 若确需直连绝对地址(如生产/部署):必须让后端 CORS 把 Allow-Origin 改为具体前端域名(blade-gateway 的 CorsConfig 用
setAllowedOriginPatterns或显式域名),不可用*配合 credentials。
调整:货物类型导入失败原因展示格式
- 文件:
src/views/base/cargo-type.vue - 修改
decorateCargoTypeFailDetail:- 移除「第N行:」前缀;
- 失败原因编号从
A. B. C.改为1. 2. 3.; - 备注超长兜底提示也同步使用数字编号。