SECURITY_ERR: DOM-Ausnahme 18 bei openDatabase

9

Ich habe eine webbasierte Android-App, die WebSQL zum Speichern verwendet. Aus irgendeinem Grund verursacht das Aufrufen von openDatabase an einem bestimmten Punkt (als Reaktion auf einen Klick auf die Schaltfläche) einen DOMException mit der Nachricht "SECURITY_ERR: DOM Exception 18" .

Beachten Sie, dass ich PhoneGap nicht verwende.

Die Hauptfrage, die ich hier stelle, ist : Was sind die möglichen Ursachen für eine DOMException 18 in openDatabase ?

Einige weitere Details : Diese Ausnahme tritt nur auf, wenn die Datenbank noch nicht existiert. Wenn es bereits existiert, funktioniert es wie erwartet. Die Funktion, die den Aufruf openDatabase verwendet, wird in einem anderen Teil der App verwendet und funktioniert problemlos.

Was ich bisher versucht habe :

  • Die Größe der Datenbank zu reduzieren - sollte kein Problem sein, da sie von einem anderen Teil der App erstellt wird.
  •     
  • Ich habe die Berechtigungen für den externen Speicher überprüft - sollte wieder kein Problem sein.
  •     
  • Ich habe irgendwo gelesen, dass das angeschlossene USB-Kabel dieses Problem verursachen kann - nicht, was es in diesem Fall verursacht.

BEARBEITEN: So sieht der Befehl aus:

%Vor%     
Goldsmith 25.01.2013, 14:19
quelle

2 Antworten

2

Ich habe festgestellt, dass es mit der erlaubten Größe der Datenbank zu tun hat. Wenn Sie versuchen, eine Datenbank zu öffnen, die größer als 50 MB auf iOS ist, erhalten Sie diesen Fehler.

    
ppo 04.04.2013 05:38
quelle
1

Laut der Spezifikation die Spezifikation verursacht dies nur zwei

  • Der Benutzeragent kann eine SECURITY_ERR-Ausnahme auslösen, anstatt ein Database-Objekt zurückzugeben, wenn die Anforderung eine Richtlinienentscheidung verletzt (z. B. wenn der Benutzeragent so konfiguriert ist, dass die Seite keine Datenbanken öffnen kann).

  • Wenn Ursprung kein Schema / Host / Port-Tupel ist, dann werfen Sie eine SECURITY_ERR-Ausnahme

Kyaw Tun 26.01.2013 05:17
quelle