我正在尝试使用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中运行时出现以下错误
未捕获到的SyntaxError:意外令牌:
我得到的Json数据是这个
{“ terms”:{“ heading”:{“ answer”:24,“ ansari”:5}}}
我咨询了以下链接http://jqueryui.com/demos/autocomplete/#remote-jsonp,但我找不到解决方案.请指出我在做什么错
解决方法:
您(正确吗?)指定了JSONP来访问跨源资源,但是您没有告诉Solr您希望它发出JSONP而不是纯JSON.
将jsonp:’json.wrf’添加到$.ajax的参数中.
http://xplus3.net/2010/09/21/solr-and-jsonp/的更多内容