console.log(db); //db object exists
console.log(db.objectStoreNames.contains('test')); //true - object store exists
var transaction = db.transaction(['test'], 'readwrite'); // this line is causing the error
A mutation operation was attempted on a database that did not allow mutations." code: "6
为什么我得到这个错误?我的数据库和对象存储存在?我失去了我的头脑!:D任何帮助都非常感谢!
谢谢
3条答案
按热度按时间xggvc2p61#
此错误的一个潜在原因:Firefox不支持在私密浏览窗口中使用IndexedDB。请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=1639542和https://github.com/jakearchibald/idb/issues/81。
z9ju0rcb2#
我只是尝试现在的chrome,Safari上的Mac OS X,并没有发现任何错误.
我在http://dev.yathit.com/ydn-db/using/schema.html上做如下操作(该页面加载ydn.db.storage对象)
旧chrome使用1而不是“readwrite”,但我不认为这是一个原因。
ubof19bj3#
这样的错误太多了,只有这篇文章http://dev.opera.com/articles/introduction-to-indexeddb/说明了原因----“使用IndexedDB,我们数据库上的每个操作或事务都必须在回调函数中发生”。
这是我的一个简单的例子,请使用chrome的devtool-〉resource-〉indexedDB查看它;(如果indexedDB中没有任何内容,请尝试刷新浏览器)
html部分:
脚本部分: