Pourquoi est-ce IndexedDB mettre échec d'une commande? Erreur: DataError: DOM IDBDatabase Exception 0

J'ai réussi à ajouter le texte suivant à la objectStore quand je l'ai créé:

{ name: "John Doe", age: 21 }

J'ai utilisé les options:

{ keyPath: "id", autoIncrement: true }

Je suis en mesure de trouver le dossier et il montre le id = 1. Cependant, quand je lance cette commande ci-dessous, il renvoie une erreur:

var store = db.transaction( [ "employees" ], "readwrite" ).objectStore( "employees" );
var request = store.put( { name: "John Doe", age: 32 }, 1 );

Ce lève:

DataError: DOM IDBDatabase Exception 0

Personne ne sait quel est le problème? Suis-je en spécifiant la clé de manière incorrecte?

Mise à jour

La IndexedDB spec dit que le second paramètre doit être autorisé:

interface IDBObjectStore {
    ...
    IDBRequest put (any value, optional any key);
    ...
};

Toutefois, cela ne fonctionne pas, mais ce fonctionne:

store.put( { name: "John Doe", age: 32, id: 1 } );

C'est un bug d'exiger que. Sauf si je suis encore en train de faire quelque chose de mal.

J'ai été confrontée au même problème.J'ai essayé IDBRequest mettre (n'importe quelle valeur, en option toute touche); avec le passage d'incrémentation automatique de l'id en paramètre facultatif et cela a fonctionné

OriginalL'auteur Don Rhummy | 2013-06-16