Firefox和Chrome中的IndexedDB错误:未知错误和DOMException

时间:2017-04-15 09:34:59

标签: javascript google-chrome firefox indexeddb

我正在尝试在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

我不知道我做错了什么。

2 个答案:

答案 0 :(得分:1)

在chrome中,转到chrome:// settings / content并确保选中顶部单选按钮。另请查看“管理例外”列表,以查看该域是否已明确阻止。

答案 1 :(得分:0)

对于我来说,我按照以下步骤操作:

  1. 在新的Chrome标签中转到网址SELECT s1.name, s1.updatedAt FROM issuers s1 LEFT JOIN issuers s2 ON s1.updatedAt < s2.updatedAt WHERE s2.updatedAt IS NULL;
  2. 点击 <div class="modal-dialog"> <!-- Modal content--> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">&times;</button> <h5 class="modal-title">Capture Image</h> </div> <div class="modal-body"> <style> #my_camera{ width: 320px; height: 240px; border: 1px solid black; } </style> <div id="my_camera"></div> <input type=button value="Take Snapshot" onClick="take_snapshot()"> <div id="results" ></div> <!-- Webcam.min.js --> <script type="text/javascript" src="webcamjs/webcam.min.js"></script> <!-- Configure a few settings and attach camera --> <script language="JavaScript"> Webcam.set({ width: 320, height: 240, image_format: 'jpeg', jpeg_quality: 90 }); Webcam.attach('#my_camera'); <!-- Code to handle taking the snapshot and displaying it locally --> function take_snapshot() { // take snapshot and get image data Webcam.snap(function (data_uri) { // display results in page document.getElementById('results').innerHTML = '<img src="' + data_uri + '"/>'; }); } </script> </div> <div class="modal-footer"> <button type="button" class="btn btn-success" data-dismiss="modal">Captute Image</button> <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button> </div> </div> </div> </div>
  3. 取消选中chrome://settings/content

这应该可以解决该错误。