【问题标题】:YQL and javascript (failed)YQL 和 javascript(失败)
【发布时间】:2014-01-07 23:12:35
【问题描述】:

我发现了一个技巧

// Define variables
var query = 'select * from data.html.cssselect where url="http://www.chucknorrisfacts.com/chuck-norris-top-50-facts" and css=".field-content a"';
var yqlAPI = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent(query) + ' &format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=?';
$.getJSON(yqlAPI, function(r){
    console.log('Chuck Norris Facts:');
$.each(r.query.results.results.a, function(){ console.log('----------'); console.log(this.content);
}); }); 

听起来不错,但它不起作用。

发现这个:http://tutorialzine.com/2010/02/feed-widget-jquery-css-yql/ 同样的问题。 https://github.com/hail2u/jquery.query-yql 下载、解压、在服务器上运行,什么都没有。

第一个查询的 YQL 控制台很慢,但 works

如何在 js 中使用 YQL? OAuth 有必要吗?

更新:

【问题讨论】:

  • 您的 sn-p 似乎对我有用。看看in this fiddle。你到底有什么问题?当您说“我如何将 YQL 与 js 一起使用”时,您的意思是 jquery 吗?如果这不是必需的,您可以查看YQL Query and YUI,这可能会更容易。
  • 对我来说很好用....尝试打开开发工具转到控制台,然后将其插入。确保 jquery 已安装在您尝试使用的网站上。
  • 感谢您的反馈!控制台已打开... FF、Chrome、Safari 最新版本上没有任何内容; macOS X 10.9。也许 YQL 在我的国家不起作用?
  • YQL 对于我所知道的任何国家/地区都没有此类限制。有些端点确实需要您进行身份验证,但只有那些处理您的个人数据或您的雅虎电子邮件帐户(如果有的话)的端点。 YQL 开发者控制台清楚地标记了哪些需要和不需要身份验证,而您尝试的不是其中之一。

标签: javascript jquery yql


【解决方案1】:

抱歉,我找到了答案……这不是 YAHOO,而是我的本地网络和他的网关(调制解调器)。

我使用 Tethering 连接进行了成功的测试。所以我去我的网关管理页面。


防火墙

Web 内容过滤器:此页面允许防火墙阻止某些面向 Web 的 cookie、java 脚本和弹出窗口。也可以定义不受任何配置过滤器约束的“受信任计算机”列表。也可以启用特定的防火墙功能。 强烈建议始终启用防火墙以防止拒绝服务攻击。转到家长控制页面以阻止对特定网站的 Internet 访问。

网络功能

  • 过滤代理取消选中
  • 取消选中过滤 Cookie
  • 取消选中过滤 Java 小程序
  • Filter ActiveX 取消选中
  • 过滤弹出窗口取消选中
  • 取消选中阻止分段 IP 数据包
  • 端口扫描检测取消选中
  • IP 洪水检测取消选中
  • 防火墙保护 > 已检查

取消选中最后一项,现在它可以工作了!这个防火墙我从来没有遇到过任何问题,使用 ajax、nas config、dlna 协议,在本地服务器上运行 mysql……

更具体地说,这是一个Thomson twg850-4(由我的 ISP 租用)。

【讨论】:

  • 哎呀...是的,那些 Thompson 路由器是 PIA,我在英国有很多服务呼叫与他们打交道,Talk Talk 和 Plus-net 似乎有利于他们,他们导致只有悲伤。
  • 知道如何从 amazon.in/Seiko-Premier-Analog-Blue-Watch/dp/... 中获取图像和元描述吗?
【解决方案2】:

不太清楚您的问题是什么,但您的初始脚本按原样运行。

我进行了一些更改,将其添加到页面中并创建内联内容,并在以下浏览器下测试和运行:

铬 31.0.1650.63 m 火狐 26.0 IE 11.0 IE 10.0 IE 9.0

<!DOCTYPE html />
<html>

  <head>
    <title>Chuck Norris facts</title>
  </head>

  <body>
    <h1>Chuck Norris facts</h1>

    <ul id="facts">
    </ul>

    <script src="http://code.jquery.com/jquery-2.0.3.min.js" type="text/javascript"></script>
    <script type="text/javascript">

      $(document).ready(function ()
      {
        getFacts();
      });

      var query = 'select * from data.html.cssselect where url="http://www.chucknorrisfacts.com/chuck-norris-top-50-facts" and css=".field-content a"';
      var yqlAPI = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent(query) + ' &format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=?';

      function getFacts()
      {
        $.getJSON(yqlAPI, function (r)
        {
          console.log('Chuck Norris Facts:');
          $.each(r.query.results.results.a, function ()
          {
            $('#facts').append('<li>' + this.content + '</li>');
          });
        });
      }

    </script>
  </body>

</html>

我会检查的事情:

您的浏览器版本和 jQuery 版本。在我上面的代码中,我使用了来自 CDN 端点的最新 jQuery,并在很多浏览器中对其进行了测试。

我已经让它在现代版本中运行,但 IE8 和更少版本根本无法运行。

不过这并不奇怪,因为 1.9 之后的任何 jQuery 都无法在低于 IE9 的环境中运行。

如果您的 Chrome/Firefox/Opera/Maxthon 等有一段时间没有更新,我怀疑您也会遇到类似的问题。

除此之外,我无法提供更多建议,正如其他人所说,让人们知道您的浏览器中的开发人员工具控制台正在显示什么,更重要的是让我们知道您的实际浏览器版本。

【讨论】:

  • 我用你的 html jsbin.com/eLaqaYa/1/edit?html,output 制作了一个 jsbin,对我来说,任何浏览器和我的 android 设备 4.4 的结果都是一样的!
  • 您将不得不确切地告诉我它是如何失败的,我只是通过单击您给我的确切链接运行您的 JSbin 并且它有效。您将不得不开始告诉我和这里的所有其他人,您在浏览器、开发人员工具以及您可以看到的任何其他地方看到的错误消息到底是什么。你有自己的网络服务器,你可以尝试从上面加载我的 HTML 吗?然后会发生什么,也尝试下载一个像 fiddler2 这样的工具,然后向我们展示在发出请求时看到了什么。
  • 除非你开始做这些事情,否则没有人能进一步帮助你。
猜你喜欢
  • 1970-01-01
  • 2014-03-23
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多