有时无法从Jquery GET检索数据

时间:2015-04-05 15:57:30

标签: javascript jquery node.js express

将其简化为:

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

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

我稍后会使用此信息,因此我将其存储在本地,但有时它是未定义的,有时它很好。是什么让它如此不可靠?

它似乎遇到的问题是颜色有时是未定义的。在收到数据之前处理数据是否存在时间问题?

^ === EDIT === ^

尝试在不粘贴整个项目的情况下为您提供所有必要的信息。

因此,在我的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的回调,所以我认为这不会成为一个问题。

如果你们发现任何非常受欢迎的东西,我还可以提供更多信息,如果需要的话,不确定相关的内容。

谢谢!

2 个答案:

答案 0 :(得分:0)

我首先要看的是GET请求,以保证每次都实际返回数据。至于'a is undefined`错误,我假设您使用的是JQuery的缩小版本。尝试使用非缩小版本,假设问题是客户端,可能会指向正确的方向。

答案 1 :(得分:0)

这是一个完全不相关的问题,我在这里解释得很严重。只是尝试在$.get之后处理数据,而不是在回调内部。保持代码异步!