特定页面HereMap加载失败,报Worker broker相关错误
问题现象
在部分域名下的特定页面加载Here Maps时失败,控制台输出以下错误:
Tangram [error]: Scene.load() failed to load blob:xxx: Worker broker could not add non-Worker object
Error: Worker broker could not add non-Worker object
at WorkerBroker.addWorker (mapsjs-core.js:435:68531)Uncaught (in promise) Error: Worker broker could not add non-Worker object
at WorkerBroker.addWorker (mapsjs-core.js:435:68531)
at mapsjs-core.js:435:604245
其他页面运行正常。
排查与解决方案
检查Worker构造函数是否被篡改
特定页面可能引入了第三方脚本,覆盖或修改了全局Worker对象,导致Here Maps无法创建合法的Worker实例。可在页面控制台执行console.log(Worker),对比正常页面的输出确认是否存在异常。验证Content Security Policy (CSP) 配置
部分域名的CSP规则可能限制了Blob URL或Worker的加载权限。检查页面的CSP响应头,确保包含:worker-src blob: 'self'; script-src blob: 'self';避免阻止Here Maps的Worker脚本从Blob URL加载。
核对SDK版本一致性
确认异常页面使用的Here Maps SDK版本和正常页面是否一致。若版本不同,尝试同步版本,或升级到官方最新稳定版,排查版本引入的兼容性问题。排查页面独有脚本的冲突
对比正常页面与异常页面的脚本清单,逐一禁用异常页面独有的第三方脚本(如广告、监控类脚本),测试是否能恢复地图加载,定位干扰源。
内容的提问来源于stack exchange,提问作者Arunraj Maripandiyan

