2015-04-05 21 views
0

範圍縮小到這一點:數據有時不從jQuery的檢索GET

$.getJSON('/drinks/getColors', function(items) { 
    colors = items; 
}); 

$.each(colors, function(index2, value2) { 
    if (value.name == value2.name) { 
     curColor = value2.color; 
    } 
}); 

我後來用這個信息,所以我本地存儲它,但有時卻是不確定的,其他時候的罰款。是什麼讓它變得不可靠?

它似乎存在的問題是顏色有時是不確定的。在收到數據之前處理數據是否存在計時問題?

^===編輯===^

要去嘗試,給你所有必要的信息,而不只是貼上我的整個項目。

因此,在我的drinks/find頁面的頁面加載中,我對我的數據庫運行GET請求以獲取飲料詳細信息並填充頁面。

$(document).ready(function() { 
loadDrink(curDrink); 
}); 

從那裏,功能得到數據:

$.getJSON(address, function(item) { 
#Work with data, update pages, loops, etc 
} 

經常,但並非總是如此,我會從jQuery的獲得TypeError: a is undefined錯誤,但刷新了幾次,最終得到它的工作。

這裏是我的數據庫調用路徑:我不太確定是什麼問題

router.get('/find/details/:name', function (req,res){ 
var db = req.db; 
nameToSearch = req.params.name.toLowerCase(); 
db.collection('recipes').findOne({name: nameToSearch}, function (err, result) { 
    res.send(result); 
}); 
}); 

。我的一些查詢中有空格(正在修復),但是這個錯誤也會發生在單詞搜索中,所以我不認爲這是問題的原因。

我猜測它與試圖處理尚未收到數據的頁面有關。但所做的工作也是對$.getJSON的回調,所以我認爲這不是問題。

如果你們發現任何會被超值讚賞的東西,我還可以提供更多的信息,如果需要,不知道什麼是相關的。

謝謝!

+0

您尚未發佈足夠的代碼。 – Pointy 2015-04-05 16:00:45

+0

還有什麼幫助? – xHocquet 2015-04-05 16:01:39

+0

對於初學者來說,這個代碼涉及一個名爲「a」的變量。 – Pointy 2015-04-05 16:02:29

回答

0

我首先要看的是GET請求,以確保數據實際上每次都被返回。至於'a是未定義的錯誤,我假設你正在使用JQuery的縮小版本。嘗試使用非縮小版本,可能會指出您在正確的方向,假設問題是客戶端。

+0

正如我所想,錯誤源於'$ .each'函數。我在迭代之前檢查了所有數據,並且似乎都在那裏。唯一不能在那裏得到檢查的長度,然後試圖通過它。 – xHocquet 2015-04-05 16:17:39

+0

@xHocquet只要你知道:我們不能看到'$ .each',我們不能看到返回的數據是怎麼樣的,或者你正在檢查長度。這是幫助調試所需的全部信息。你在問題中發佈的代碼並沒有給我們太多:'$(document).ready(function(){//這裏有一些代碼用於不同的事情}),好吧,這兩行代碼看起來不錯。 :) – Mackan 2015-04-05 19:08:29

+0

添加$ .each。看起來有時候'顏色'不在那裏,當我嘗試去處理它時。 – xHocquet 2015-04-05 19:18:41

0

這是一個完全無關的問題,我在這裏嚴厲地解釋。只是試圖在$.get之後處理數據,而不是在回調中。保持代碼異步!