【问题标题】:Problem using getJSON and YQL使用 getJSON 和 YQL 的问题
【发布时间】:2011-06-09 18:21:45
【问题描述】:

我正在尝试通过 YQL 获取 Youtube 中视频的视图以将其显示在我的网站上,我正在使用 jQuery 的 $.getJSON 方法来获取 YQL 调用的结果,但由于某种原因我做得很好成功部分没有触发,这是我的代码:

$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DrWlHtvZHbZ8%26feature%3Dplayer_embedded%22%20and%0A%20%20%20%20%20%20xpath%3D'%2Fhtml%2Fbody%2Fdiv%2Fdiv%5B3%5D%2Fdiv%2Fdiv%2Fdiv%5B3%5D%2Fdiv%2Fdiv%2Fdiv%5B2%5D%2Fdiv%2Fspan%2Fstrong'&format=json&diagnostics=true&callback=cbfunc",
    function(data) {
        alert('Hello');
    }
);

我在我的萤火虫控制台上看到发出了请求并且它返回了正确的 json 对象,但我的函数中的警报没有触发,我在这里做错了什么?

提前致谢!

【问题讨论】:

    标签: jquery json yql


    【解决方案1】:

    从 URL 中删除 &callback=cbfunc,以便 jQuery 可以自己定义回调。

    $.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DrWlHtvZHbZ8%26feature%3Dplayer_embedded%22%20and%0A%20%20%20%20%20%20xpath%3D'%2Fhtml%2Fbody%2Fdiv%2Fdiv%5B3%5D%2Fdiv%2Fdiv%2Fdiv%5B3%5D%2Fdiv%2Fdiv%2Fdiv%5B2%5D%2Fdiv%2Fspan%2Fstrong'&format=json&diagnostics=true",
        function(data) {
            alert('Hello');
        }
    );
    

    http://jsfiddle.net/niklasvh/C5cYB/

    【讨论】:

      【解决方案2】:

      使用 jQuery 的匿名回调被认为是不好的做法,请参阅 YQL 博客上的 Beware of client-side libraries "helping" you

      由于您的原始 YQL URL 告诉 YQL 需要一个名为 cbfunc 的回调函数,那么您需要做的就是在 JavaScript 中定义该函数(在 window 范围内)。

      function cbfunc(data) {
          alert('Hello');
      }
      

      【讨论】:

        【解决方案3】:

        我对 YQL 一无所知,但我在该查询字符串的末尾看到了一个显式回调集,这可能是个问题。您是否尝试过删除“callback=cbfunc”,或者放置“callback=”?在http://api.jquery.com/jQuery.getJSON/的jsonp文档中@

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-06
          • 2013-08-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多