首页 > 解决方案 > svelte.dev/repl 似乎不支持 indexedDb(或 localStorage)

问题描述

我使用以下代码在 Svelte REPL(示例)中尝试​​了一个基本的 indexedDb 连接:

// test this code at https://svelte.dev/repl/569c0a7b1bcb416d939c9de58f57a307?version=3.22.2
if (window.indexedDB) {
    console.log("IndexedDB is supported");
}
else {
    alert("Indexed DB is not supported!");
}
// basic indexedDB API connections
var openRequest = indexedDB.open("AppDb", 1);

...但是我收到以下错误:

无法在“IDBFactory”上执行“打开”:在此上下文中拒绝访问索引数据库 API。

如果我注释掉 'var openRequest...' 行,控制台会打印“IndexedDB is supported”,所以这似乎是 REPL 的问题。这是设计使然吗?在 REPL 中支持 indexedDb 会很有帮助。

标签: indexeddbread-eval-print-loopsvelte

解决方案


是的,对 REPL 施加了各种安全限制,以防止它成为 XSS 向量。公开一种在每个应用程序的基础上放松这些限制的方法是一个 TODO!


推荐阅读