【问题标题】:Catch $.getJSON error捕获 $.getJSON 错误
【发布时间】:2011-01-10 10:50:52
【问题描述】:

我已经尝试了好几个小时来解决这个问题。我有一个动态 youtube 搜索,我使用 Youtube 的 JSON api。它通常可以工作,但有时它什么也找不到。有没有办法确定它是否什么也没找到,然后结束函数,否则它会停止整个代码。我尝试了jsonp,但这似乎不正确。在某处我读到错误捕获内置在最新的 jQuery getJSON 中,但我找不到它。

代码真的很乏味,所以我宁愿不发布它,除非它涉及到。我会很感激任何帮助!谢谢大家。

显示 json 没有返回任何内容的错误

jquery-1.4.4.min.js:32 TypeError: 表达式 'j' [undefined] 的结果不是对象。

http://pastebin.com/4rVjAUwa

【问题讨论】:

  • 你能给我看一个代码示例吗
  • 您是否从请求中得到正确响应?如果是这样,console.logdata 有什么看法?我想你可能会更好地使用.ajax 进行调试
  • 我现在正在尝试使用 ajax。我得到了一个响应(来自 getJSON),但如果什么都没有,它只会结束函数并引发错误。

标签: javascript jquery json getjson


【解决方案1】:

您是否尝试过仅使用 jsonp 或使用 jQuery.get 然后解析输出(如果不是什么都没有)?

【讨论】:

  • 我试过了,但无法正常运行。你认为你可以尝试修改我的代码吗?
  • 我更改了您的代码。 (“callback=?”已添加到第一行)。你能试试吗? pastebin.com/V2CrVpSc
  • 你能提供一个jsfiddle吗?
  • 您尝试过 pastebin.com/V2CrVpSc 吗?
  • 我只是做了一点改变(“callback=?”到“&callback=?”)。新网址是pastebin.com/vD0WY6qN
【解决方案2】:

如果您需要捕获错误情况,请使用带有 error 属性的 $.ajax:

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback,
  error: callback
});

【讨论】:

  • 我要为数据添加什么:字符串?
【解决方案3】:

我想通了,我所要做的就是:

if (data.feed.entry == null)

在 .each() 之前捕获错误。

【讨论】:

    【解决方案4】:

    抱歉,我无权发表评论。您不能使用json 从远程服务器中提取数据。你试过jsonp吗?这是

    http://gdata.youtube.com/feeds/api/videos?max-results=5&alt=json&q=phish&callback=?
    

    【讨论】:

    • 我试过 jsonp 但没用。也许是因为我没有那些星号?你能提供更多细节吗?
    • 对不起,没有星号。我遇到了 yahoo json 服务的问题。我读了ibm.com/developerworks/library/wa-aj-jsonp1,它对我很有用
    猜你喜欢
    • 1970-01-01
    • 2014-05-09
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2017-03-26
    • 2019-01-28
    • 1970-01-01
    相关资源
    最近更新 更多