2012-08-04 109 views
-1

我創建了一個檢索數據的jsonp請求。唯一的問題是我不能似乎得到一個數組中的數據我的外循環:(使用jQuery將Ajax jsonp數據轉換爲數組

var lookbook_data = new Array(); 
$.ajax({ 
    url: "http://lookbook.king-quinna.nl/api/get_recent_posts/?callback=1&custom_fields=image1", 
dataType: "jsonp", 
success: function(data) { 
for(var i = 0; i<4; i++) { 
    lookbook_data[i] = data.posts[i].custom_fields.image1[0];  
} 
} 
}); 
console.log(lookbook_data); 

所以,當我CONSOLE.LOG他們陣列的外觀它輸出中的數據的方式應該。但是功能外事實並非如此。但我沒有外面decleare變量,所以我真的不知道爲什麼:(

順便說一句對不起,凌亂codebock不能似乎與4位:(

回答

2

得到它的權利這Ajax調用是異步的,所以您可以在完成之前立即到達代碼的最後一行。

你可以做是同步的(不推薦)與

async = 'false' 

Ajax調用

內或做這樣的事情

$.ajax({ 
    url: "http://lookbook.king-quinna.nl/api/get_recent_posts/?callback=1&custom_fields=image1", 
    dataType: "jsonp", 
    success: function(data) { 
     for(var i = 0; i<4; i++) { 
      lookbook_data[i] = data.posts[i].custom_fields.image1[0];  
     } 
     continueHere() 
    } 
}); 

function continueHere() { 
     // rest of the code that handles your ajax call 
} 
+0

那麼我該如何讓它工作? – Niels 2012-08-04 11:18:12

2
var lookbook_data = new Array(), 
    XHR = $.ajax({ 
      url: "http://lookbook.king-quinna.nl/api/get_recent_posts/?callback=1&custom_fields=image1", 
      dataType: "jsonp" 
      }); 
//anywhere else in your script you can call : 
XHR.done(function() { 
    for(var i = 0; i<4; i++) { 
     lookbook_data[i] = data.posts[i].custom_fields.image1[0];  
    } 
    console.log(lookbook_data); 
}); 
+0

非常感謝 – Niels 2012-08-05 21:07:52

1

在你的循環中使用這個console.log(lookbook_data[i]);裏面的成功功能