我正在使用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>
在Firefox中;当我在主浏览器窗口中加载此html并创建和检索记录时,每件事情都可以正常工作,但是当我在iframe中加载此html页面并尝试读取记录时,它不起作用。
但是在Chrome中,当我在iframe中加载这个HTML并读取记录时,它可以正常工作。
在firefox的iframe中不读取记录(以及与本地数据库相关的其他操作)的原因是什么
答案 0 :(得分:1)
这是firefox的一个问题,它无法从iframe访问indexedDB。 此问题已在最新版本的mozilla firefox中得到解决,即 v43.0.4