2016-03-31 2 views
0

Ich verwende WebSQL. Ich versuche, Daten in Async Block hinzuzufügen, die Daten nicht eingefügt werden sollen. Code ist unten angegeben:Chrome-Erweiterung: Daten werden nicht eingefügt oder abgerufen

function fetchData(){ 

    var xhr = new XMLHttpRequest(); 
    xhr.open("GET", "http://localhost/x/fetch.php", true); 
    xhr.onreadystatechange = function() { 
     if (xhr.readyState == 4) { 
      // JSON.parse does not evaluate the attacker's scripts. 
      var resp = xhr.responseText; 
      if(resp != null) { 
       var json = JSON.parse(resp) 
       console.log(resp); 
       var data = json['data']; 
       if(data != null) { 
        openDatabase('documents', '1.0', 'documents', 5*1024*1024, function (db) { 
         alert('Called'); // This is called after below two calls. 
         insertRecord(db); 
         fetchRecord(db); 
        }); 
        //var dbConnection = openDbConnect(); 
        //createTable(dbConnection); 

        for(var a=0;a <= data.length;a++) { 
         alert(data[a].title); 
        } 
       } 

      } 

     } 
    } 
    xhr.send(); 
} 

JSON Dump

{"data":[{"id":"1","title":"- Parts I & II”,”CODE”:”xxx”,”product_url":"http:\/\/www.example.com","image_url":"http:\/\/ecx.images-example.com\/images\/I\/61ujIIMyW7L.jpg","price":"$25.00"},{"id":"2","title”:”AJDJDDJDr”,”Code”:”XX”,”product_url":"http:\/\/www.example.com","image_url":"http:\/\/dc.images-example.com\/images\/I\/41jFVZL72YL.jpg","price":"$10.99"}]} 
+0

Jeder Fehler Du kommst in die Konsole; und ist es Inhaltsskript oder Hintergrundseite oder Popup-Seitenskript? – itzmukeshy7

+0

@ itzmukeshy7 Es ist eine Hintergrundseite. Ja, Fehler wird angezeigt 'Uncaught TypeError: Kann die Eigenschaft 'title' von 'undefined' nicht lesen – Volatil3

+0

Was bekommen Sie in' data'? – itzmukeshy7

Antwort

0

Try this;)

Problem in dieser Schleife Zustand:

for(var a = 0; a <= data.length; a++) { 
       ^

Hier werden Sie ab 0 und Schleife zu data.length

So mit Arrays als Array-Index in einer Schleife beginnt von 0 Schleife bis a <= data.length - 1 OR a < data.length

for(var a = 0; a < data.length; a++) { 

ODER

for(var a=0; a <= (data.length - 1); a++) { 

Statt for Schleife Sie for...in wie diese verwenden:

for(var index in data){ 
    alert(data[index].title); 
} 
Verwandte Themen