Firefox 和 Chrome 中的 IndexedDB 错误:未知错误和 DOMException
IndexedDB errors in Firefox and Chrome: Unknown error and DOMException
我正在尝试在 Chrome 和 firefox 中打开 IndexedDB。我的代码:
var v = 2;
var request = indexedDB.open("orders", v);
//Firefox code for db init
request.onupgradeneeded = function (e) {
console.log("onupgradeneeded");
var db = e.target.result;
// We can only create Object stores in a setVersion transaction;
if(db.objectStoreNames.contains("client")) {
var storeReq = db.deleteObjectStore("client");
}
const employeeData = [
{ id: "00-01", name: "gopal", age: 35, email: "gopal@tutorialspoint.com" },
{ id: "00-02", name: "prasad", age: 32, email: "prasad@tutorialspoint.com" }
];
var objectStore = db.createObjectStore("client", {keyPath: "id"});
for (var i in employeeData) {
objectStore.add(employeeData[i]);
}
}
request.onsuccess = function(e) {
var db = e.target.result;
console.log("Success");
console.log(db);
var transaction = db.transaction(["client"]);
var objectStore = transaction.objectStore("client");
var request = objectStore.get("00-02");
request.onerror = function(event) {
alert("Unable to retrieve daa from database!");
};
request.onsuccess = function(event) {
// Do something with the request.result!
if(request.result) {
alert("Name: " + request.result.name + ", Age: " + request.result.age + ", Email: " + request.result.email);
}
else {
alert("Kenny couldn't be found in your database!");
}
};
};
request.onerror = function(e) {
console.log(e);
};
在Chrome中它根本不起作用。我得到一个
DOMException: The user denied permission to access the database.
在 Firefox 中,它的工作原理如上所示。但是,当我将数据库名称更改为 myindexeddb
时,它就不再起作用了。我得到一个 UnknownError
.
我不知道我做错了什么。
在 chrome 中,转到 chrome://settings/content 并确保选中顶部单选按钮。还要检查“管理例外”列表以查看该域是否被明确阻止。
就我而言,我遵循了以下步骤:
- 在新的 Chrome 选项卡中转到 url
chrome://settings/content
- 点击
Cookies
- 取消选中
Block third-party cookies
这应该可以解决错误。
我正在尝试在 Chrome 和 firefox 中打开 IndexedDB。我的代码:
var v = 2;
var request = indexedDB.open("orders", v);
//Firefox code for db init
request.onupgradeneeded = function (e) {
console.log("onupgradeneeded");
var db = e.target.result;
// We can only create Object stores in a setVersion transaction;
if(db.objectStoreNames.contains("client")) {
var storeReq = db.deleteObjectStore("client");
}
const employeeData = [
{ id: "00-01", name: "gopal", age: 35, email: "gopal@tutorialspoint.com" },
{ id: "00-02", name: "prasad", age: 32, email: "prasad@tutorialspoint.com" }
];
var objectStore = db.createObjectStore("client", {keyPath: "id"});
for (var i in employeeData) {
objectStore.add(employeeData[i]);
}
}
request.onsuccess = function(e) {
var db = e.target.result;
console.log("Success");
console.log(db);
var transaction = db.transaction(["client"]);
var objectStore = transaction.objectStore("client");
var request = objectStore.get("00-02");
request.onerror = function(event) {
alert("Unable to retrieve daa from database!");
};
request.onsuccess = function(event) {
// Do something with the request.result!
if(request.result) {
alert("Name: " + request.result.name + ", Age: " + request.result.age + ", Email: " + request.result.email);
}
else {
alert("Kenny couldn't be found in your database!");
}
};
};
request.onerror = function(e) {
console.log(e);
};
在Chrome中它根本不起作用。我得到一个
DOMException: The user denied permission to access the database.
在 Firefox 中,它的工作原理如上所示。但是,当我将数据库名称更改为 myindexeddb
时,它就不再起作用了。我得到一个 UnknownError
.
我不知道我做错了什么。
在 chrome 中,转到 chrome://settings/content 并确保选中顶部单选按钮。还要检查“管理例外”列表以查看该域是否被明确阻止。
就我而言,我遵循了以下步骤:
- 在新的 Chrome 选项卡中转到 url
chrome://settings/content
- 点击
Cookies
- 取消选中
Block third-party cookies
这应该可以解决错误。