云贝餐饮v3前端报错none uniacid解决
当我部署这个项目,填好 uniacid 和 acid 后编译 H5,
本来以为能看到页面正常展示,结果直接给我来一句:
none uniacid
一、现象
1️⃣ 页面报错
页面一加载就提示:
none uniacid

2️⃣ 直接请求 API 也报错

一开始我以为是 uni-app 配置问题,
反复检查了配置文件 —— 没毛病。
二、后端排查
翻了半天后端代码,也没看出什么异常。
直到看到这个方法:
public function uniacid()
{
return Request()->header('uniacid');
}⚠️ 重点来了
原来 uniacid 是从 HTTP Header 里取的。那就合理了:
- 浏览器 直接 GET API
- Header 里根本没有
uniacid - 后端自然报错
👉 结论:
问题 100% 在前端
三、前端现场
打开控制台一看,直接血压拉满:
uniacid: undefined
前端程序员你在干嘛???
四、请求代码检查
继续顺着请求走,看调用函数:

代码本身 没有任何问题,参数也正常传了。
那就只能继续往上翻。
五、真凶出现:入口文件
最后在入口文件里翻到了这段代码:

if (!siteInfo.isDev) {
let params = utils.getUrlParams(location.href);
this.globalData.siteInfo.uniacid = params.uniacid;
console.log(
'%c params ',
'color: white; background-color: #f00000',
params,
siteInfo
);
if (!params.uniacid) {
util.message('none uniacid', 3);
}
}谁教你这么写代码的
- 你干嘛要让H5 从 URL 取
uniacid参数 - 页面切一下新URL 也不再带 uniacid啊
六、解决办法
直接注释掉这段 H5 特殊处理代码