【问题标题】:Uncaught SyntaxError: Unexpected token : YQL jQuery未捕获的语法错误:意外标记:YQL jQuery
【发布时间】:2014-03-12 17:36:08
【问题描述】:

我正在尝试使用 jQuery 通过 Yahoo Query Language (YQL) 从 JSON 中获取数据。

Link to JSON

index.html

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>

    $.ajax({
        url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D'http%3A%2F%2Fwww.unisul.br%2Fwps%2Fportal%2Fhome%2Fconheca-a-unisul%2Fa-universidade%2Fcampus-unisul-virtual%2Fpolos-presenciais'%20and%20xpath%3D'%2F%2F*%5B%40id%3D%22lista-polos%22%5D'&format=json&diagnostics=true&callback=",
        dataType: 'jsonp',
        success: function (response) {

            var polos = response.results[0];
            var getPolosHTML = '';

            console.log(polos);

        }
    });
</script>

控制台错误: Uncaught SyntaxError: Unexpected token :

有什么办法吗?

【问题讨论】:

  • @Pogrindis 为什么?他没有向 yql 发送 json,而是从 yql 接收它
  • 你是对的.. 那么“响应”中的内容是什么?
  • 您的网址中缺少 1 个字符。 callback= 应该是 callback=?。当然,由于 JSON 的格式,它仍然会失败。

标签: javascript jquery jsonp yql


【解决方案1】:

首先,您必须设置 url,以便 jquery 通过将 ? 添加到 callback= 来添加 jsonp 参数

...&callback=?

然后,您必须修改成功回调以正确引用数据。

var polos = response.query.results;
console.log(polos); // object with a div property

http://jsfiddle.net/jZ4n8/1/

【讨论】:

  • 谢谢!对数据的引用忘记了改变。但是,回调后的? 是必不可少的!再次感谢!
【解决方案2】:

代码没有错误。 api 的输出无效。您可以交叉检查 json 结果(http://jsonlint.com/)。

【讨论】:

  • 有效。很可能当您复制 json 时,您并没有得到全部。
猜你喜欢
  • 2020-08-09
  • 2020-08-02
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
  • 1970-01-01
  • 2020-02-27
  • 2022-12-07
相关资源
最近更新 更多