jSON:未捕获的SyntaxError:意外的令牌

时间:2013-10-02 07:48:30

标签: javascript jquery json html5 jsonp

我知道我不是第一个收到此错误的人,而且Stack Overflow上有很多其他帖子可以解决此错误。但是,我找不到解决方案,因此,写下这个问题。

我比较新鲜,最近开始用HTML5学习JSON,jQuery和JavaScript。所以,我想用下面的基本例子来做一些事情。

<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
<script>
debugger;
</script>
<title>Doc Title</title>
</head>
<body>
<p id="rssFeed">News Loadin...</p>
<script>
debugger;
var yQuery = 'http://news.google.com/news?geo=02138&output=rss';
var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent("select * from xml where url='" + yQuery + "'") + '&format=json&callback=?';
debugger;
(function(){
    debugger;
    $.getJSON(yql)
    debugger;
     .done(function(data){
        debugger;
        $.each(data.query.results.item, function(i,item){
            alert(item.link);
        });
     });
})();
</script>
</body>
</html>

此HTML文件位于我的本地计算机上,我正在Chrome浏览器中对其进行测试。我在浏览器中看到的唯一内容是“新闻加载...”文字。我没有得到任何警报(来自警报(item.link);)。

我尝试在Chrome(F12)中调试此代码,并在代码中添加了一些“调试器”。在调试窗口中,我在行Uncaught SyntaxError: Unexpected token .

处看到.done(function(data)错误

对于URL,我已经尝试了在Stack Over流程上针对同一错误的其他答案所建议的两个选项。

  • 回调=?
  • 回调= cbfunc

yql将具有以下值:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D'http%3A%2F%2Fnews.google.com%2Fnews%3Fgeo%3D02138%26output%3Drss'&format=json&callback=cbfunc

如果我将yql'cbfunc'放在浏览器网址中,我会获得JSON,如果我放'?'我会收到错误。 但是,当我加载HTML时,它们都不起作用,我得到两个错误Uncaught SyntaxError: Unexpected token

我注意到的另一个问题是,每当我在Chrome中打开此文件时,调试器只会停留在debugger <script>元素下的<head>中的第一个debugger。它不会停留在<body>.中的任何<body>语句中。即使我在Chrome开发工具中设置了断点(通过选择行号),也会发生这种情况。它不会停留在{{1}}元素中。

我对这些东西很陌生,所以请原谅我这里的任何愚蠢错误。

此致 Rumit

2 个答案:

答案 0 :(得分:1)

在您的代码中

$.getJSON(yql)
    debugger; // <<== remove this line
        .done(function(data){
.done()上调用

$.getJSON(yql),您的debugger语法错误

答案 1 :(得分:0)

删除'调试器;'在.done(..)之前的那一行。 从$ .getJSON(yql)...

返回的对象上调用.done(..)