2012-01-21 14 views
0

我使用這個代碼談到POST請求的數據。每到()函數

$.post("assets/scripts/chat/load_convos.php",{}, function(data) { 
$.each(data, function(index, value) { 
    alert(value); 
}); 

,並data的回報[57,49]但它只是沒有做任何事情......如果我更換data只是在$.each([57,49]它的作品,但不是data代替它。

我不是所有的幫助,很感激。

回答

1

你是什麼意思「data[57,49]」?

我的猜測是,你期望一個(JSON) - 對象,但你只是收到一個字符串。我的第二個猜測是,jQuery以錯誤的方式解釋了結果,並沒有將返回標識爲JSON-String,因此,它並不隱含JSON.parse它。

檢查請求的內容類型。在撥打each循環之前,嘗試手動撥打data = JSON.parse(data);。實際上,jQuery應該能夠將該字符串識別爲JSON結果本身,所以我也想知道您使用的是哪個jQuery版本。

另一種可能的情況是直接撥打.getJSON()而不是.post()

0

您可以使用JSON.parseeval('('+response+')');但可能解決的辦法是指定jQuery或您使用的庫的響應是JSON。

順便說一句,沒有所有的瀏覽器都有JSON對象,所以如果你的庫沒有提供它,你將不得不使用eval解決方案。

0

指定json作爲你的數據類型。

Taken from jquery.post documentation

Example: Posts to the test.php page and gets contents which has been 
     returned in json format 
(<;?php echo json_encode(array("name"=>"John","time"=>"2pm")); ?>). 
$.post("test.php", { "func": "getNameAndTime" }, 
    function(data){ 
     console.log(data.name); // John 
     console.log(data.time); // 2pm 
    }, "json");