2

次のようなコード:

var transaction = db.transaction(["main"], IDBTransaction.READ_WRITE);
var store = transaction.objectStore("main");
var request = store.add(object);

Firefox では正常に動作しますが、Chrome では最後の行で「DATA_ERR: DOM IDBDatabase Exception 5」がスローされます。この例外は何を意味しますか? 修正方法は?

4

4 に答える 4

2

ObjectStoreにautoIncrement:trueがある場合、Chromeはこのエラーをスローします。 [ソース]

于 2012-05-04T00:42:11.450 に答える
1

このエラーは、さまざまな理由で発生する可能性があります。Linux Chrome バージョン 22.0.1197.0 (145517) のバグである可能性があります。同じコードを使用しました。Firefox は機能しましたが、Chrome でこのエラーが発生しました。すべてをクリアしようとしました。最後に、次のコマンドで Chrome を起動しました。

./chrome --user-data-dir=/tmp/chrome

そしてそれはうまくいきました。

于 2012-07-13T05:49:48.737 に答える
1

これは、少なくとも 2 つの異なる機会に発生しました。(a) データベースのバージョンをアップグレードし、古いバージョンに書き込んでいたとき、および (b) onerror および onsuccess ハンドラーを追加することで奇妙に修正された別のケースです。 . おそらく、これらのいずれかがあなたのために働くでしょう...

req.onerror = function () {
    console.log("Oppsie!");
}
req.onsuccess = function () {
    console.log("Hurrah!");
}
于 2012-05-08T07:56:58.300 に答える
1

IndexedDB例外 5は、「操作に提供されたデータが要件を満たしていない」ことを意味します。これは通常、一意のインデックスを追加したためです。たとえば、その属性が欠落しているオブジェクトを提供している場合などです。

私の推測では、索引付けされた属性が欠落していると思われますが、この質問に確実に答えるには、mainobjectStore セットアップ コードと の JSON 表現を確認する必要がありますobject

于 2012-05-01T22:30:38.980 に答える