无法使用Jquery解析JSON

时间:2012-01-18 08:12:52

标签: javascript jquery json solr

我正在尝试使用solr和jquery进行自我暗示。为此我写了下面的代码:

$(function(){

    $( "#artist" ).autocomplete({
        source: function( request, response ) {
            $.ajax({
                url: 'http://localhost:8983/solr/terms?terms.fl=heading&terms.prefix='
                +request.term+'&wt=json&json.nl=map',

                dataType: "jsonp",

                data: {
                    q: request.term,
                    rows: 10, 
                    omitHeader: true,
                },
                success: function( data ) {
                    response( $.map( data.terms.heading, function( item ) {
                        return {
                            label: item,
                            value: item
                        }
                    }
                    )
                    );
                }
            });
        },

        minLength: 2,
        select: function( event, ui ) {
            log( ui.item ?
                "Selected: " + ui.item.label :
                "Nothing selected, input was " + this.value);
        },
        open: function() {
            $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
        },
        close: function() {
            $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
        }

    });
});

我在Chrome中运行时出现以下错误

Uncaught SyntaxError:意外的令牌: 我得到的Json数据是这个

{ “术语”:{ “标题”:{ “答案”:24, “安萨里”:5}}}

我查阅了以下链接http://jqueryui.com/demos/autocomplete/#remote-jsonp,但我无法找到解决方案。请说明我做错了什么

1 个答案:

答案 0 :(得分:3)

您(正确?)指定JSONP来访问Cross Origin资源,但您没有告诉Solr您希望它发出JSONP而不是纯JSON。

jsonp: 'json.wrf'添加到参数$.ajax

更多http://xplus3.net/2010/09/21/solr-and-jsonp/