【发布时间】:2015-11-09 14:04:48
【问题描述】:
我正在使用 pouchDB,我正在尝试从跨域 iframe 中访问本地存储(同源) 这在 chrome 中运行良好,但在 Firefox 中却不行。
澄清:我在“foobar.com”上,我加载了一个 iframe,其中包含我的 html 的来源“test.com”,这个 html 正在尝试访问它自己的本地存储,即具有相同的来源“test.com” .
只是为了展示一个例子,我从我的服务器提供了这个 HTML
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>test page</title>
</head>
<script type="text/javascript" src="pouchdb-5.1.0.min.js"></script>
<body>
<button id="create">create db</button>
<button id="read">read records</button>
</body>
<script>
document.getElementById('create').addEventListener('click', createDB, false);
document.getElementById('read').addEventListener('click', readDB, false);
function createDB(){
db = new PouchDB('noobDB');
console.log(db.adapter);
}
function readDB(){
db = new PouchDB('noobDB');
db.allDocs({include_docs : true})
.then(function(result){console.log(result)})
.catch(function(err){console.log(err)});
}
</script>
在火狐中;当我在主浏览器窗口中加载此 html 并创建和检索记录时,一切正常,但是当我在 iframe 中加载此 html 页面并尝试读取记录时,它不起作用。
但在 chrome 中,当我在 iframe 中加载此 HTML 并读取记录时,它工作正常。
在 firefox 的 iframe 中没有读取记录(以及与本地 DB 相关的其他操作)的原因是什么
【问题讨论】:
-
您使用的是 webSQL 还是 IndexDB?适配器说 webSQL 只能在 chrome 和 safari 中工作:pouchdb.com/adapters.html
-
是的,我正在使用 indexedDB,因为 websql 在 Firefox for pouchDB 中不可用
标签: firefox iframe indexeddb pouchdb