当我尝试使用 .add 将对象添加到 objectStore 时,控制台显示此错误: DataError:提供给操作的数据不符合要求。 如果有人能说出此错误的来源,那将真正帮助我。这是代码:
var request = objStore.add({tarea: todo, clase: "pendiente"});
var db;
function create_to_do(){
var todo = document.querySelector('#the-do').value;
var transaction = db.transaction("to_do", "readwrite");
transaction.oncomplete = function(eve){
console.log("all done¡")
}
transaction.onerror= function(eve){
console.log("something went wrong: "+ eve.target.errorCode);
};
var objStore = transaction.objectStore("to_do");
var request = objStore.add({tarea: todo, clase: "pendiente"});
request.onsuccess = function(eve){
console.log("all done¡");
console.log(eve.target.result);
};
}
function indexDB(){
var request = indexedDB.open('todos', 1);
request.onsuccess = function (evt) {
db = this.result;
console.log("Database Opened");
};
request.onerror = function (evt){
console.log("OpenDB error: " + evt.target.errorCode);
};
request.onupgradeneeded = function(evt){
store = evt.currentTarget.result.createObjectStore("to_do",
{keyPath: 'id', autoIncrement: true});
store.createIndex('clase', 'clase', {unique: false});
console.log("index created");
};
}
最佳答案
尝试 keyPath: 'keyPath'
或 autoIncrement: false
提供“主键”后,您必须将 autoIncrement 设置为 false 参见 here
关于javascript - 在indexedDB中添加对象时报错 "Data provided to an operation does not meet requirements",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15028403/