【问题标题】:Data sometimes not retrieved from Jquery GET [duplicate]有时无法从 Jquery GET 中检索到数据 [重复]
【发布时间】:2015-04-06 07:21:53
【问题描述】:

把它缩小到这个:

$.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 的回调,所以我认为这不是问题。

如果你们发现任何非常感谢的东西,如果需要,我也可以提供更多信息,不确定什么是相关的。

谢谢!

【问题讨论】:

  • 你没有发布足够的代码。
  • 还有什么帮助?
  • 对于初学者来说,涉及一个名为“a”的变量的代码。
  • 没有变量a。 A 可能指的是 jquery 创建的可迭代对象。
  • 当您从库中收到错误时,唯一要做的就是使用未缩小版本的页面调试您的页面,以便您可以跟踪堆栈并找出在哪里在 your 代码中出现问题。没有一般的答案; jQuery 包含非常少的代码来验证您传递给它的参数,因此有无数种方式可能会出错。

标签: javascript jquery node.js express


【解决方案1】:

我要开始的第一件事是查看 GET 请求,以确保每次都实际返回数据。至于“a is undefined”错误,我假设您使用的是 JQuery 的缩小版本。尝试使用非缩小版本,假设问题出在客户端,可能会为您指明正确的方向。

【讨论】:

  • 如我所想,错误源于$.each 函数。我在迭代之前检查了所有数据,一切似乎都在那里。唯一不能存在的会在尝试越过它之前检查其长度。
  • @xHocquet 让您知道:我们看不到$.each,我们看不到返回的数据的外观或您正在检查长度。这是帮助调试所需的所有信息。您在问题中发布的代码并没有给我们太多信息:$(document).ready(function() { //some code here for different things }),好的,这两行代码看起来不错。 :)
  • 添加了 $.each。当我尝试处理它时,似乎有时colors 不存在。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2021-10-06
    • 2019-06-26
    • 2019-11-27
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多