使用jquery读取JSON数据。未捕获的SyntaxError:意外的令牌:

时间:2016-05-28 14:34:57

标签: javascript jquery json

我尝试使用jquery读取JSON数据。特别是我试图从这个网址中读取JSON:http://mkweb.bcgsc.ca/color-summarizer/?url=http://scontent-a.cdninstagram.com/hphotos-xfa1/t51.2885-15/10643840_701797013239098_657737630_a.jpg&precision=low&num_clusters=3&json=1&callback=
但是我一直收到这个错误: Uncaught SyntaxError: Unexpected token :
这是我的jquery:

$(document).ready(function () {

        var one = "1"

        $.getJSON('http://mkweb.bcgsc.ca/color-summarizer/?url=http://scontent-a.cdninstagram.com/hphotos-xfa1/t51.2885-15/10643840_701797013239098_657737630_a.jpg&precision=low&num_clusters=3&json=1&callback=?', function(result) {

            document.write(result.clusters.one.rgb[0]);

        });
    });

我在JSON代码的第一个冒号处收到错误。
据我所知,JSON数据实际上是作为Javascript读取的。我该如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

阅读API Docs我发现您需要指定jsnop=1参数才能通过JSONP检索数据。

正确的代码是这样的:

    $(document).ready(function () {         
        $.ajax({
            url: 'http://mkweb.bcgsc.ca/color-summarizer/',
            type: 'GET',
            dataType: 'jsonp',
            jsonpCallback: 'colorsummary',
            data:{
                url: 'http://scontent-a.cdninstagram.com/hphotos-xfa1/t51.2885-15/10643840_701797013239098_657737630_a.jpg',
                precision: 'low',
                num_clusters: '3',
                jsonp: '1'
            },
            success: function(result){
                document.write(result.clusters['1'].rgb[0]);
            }
        });
    }); 

我还构建了请求,以便您可以轻松更改参数。

PS:注意JSON表示法(群集中的[' 1']等)