You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨域IndexedDB读取问题咨询:Chrome DevTools可见外部域数据库但JS代码无法获取

问题解析与解答

这是个非常典型的跨源存储权限问题,我来给你拆解清楚其中的逻辑:

1. IndexedDB的同源策略限制

IndexedDB是严格遵循浏览器同源策略的存储机制——只有创建该数据库的源(也就是https://previews.customer.envatousercontent.com这个域名)下运行的脚本,才有资格访问它。你当前执行代码的页面域名和这个源不一致,所以浏览器会直接阻止你的脚本读取跨源数据库,indexedDB.databases()返回空数组就是这个安全限制的体现。

你自己创建数据库时能正常读取,恰恰是因为这个新数据库属于当前页面的同源,完全符合权限规则。

2. Chrome DevTools能显示的原因

Chrome开发者工具是浏览器的内置调试工具,它拥有超越普通网页脚本的权限,可以绕过同源策略的限制,展示当前浏览器中存储的所有数据(无论属于哪个源)。它的核心作用是帮助开发者调试自己的应用,所以会把所有相关存储内容都呈现出来,但这并不代表普通网页脚本拥有同样的访问权限。

总结

如果你确实需要获取这个{"best_Virus_Killer":41}的数据,只有两种可行方式:

  • 在https://previews.customer.envatousercontent.com域名下运行读取脚本;
  • 借助浏览器扩展的特殊权限配置(仅适用于扩展开发场景),让你的脚本获得跨源访问权限。

普通网页脚本是无法突破同源策略读取其他源的IndexedDB数据的,这是浏览器为了用户数据安全设置的核心屏障。

内容的提问来源于stack exchange,提问作者Ammar H Sufyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 23:18:11