Jquery UI Autocompleteを使用して、 Thesaurus APIを使用して任意の単語の同義語を取得しようとしています。
API にアクセスするには、次の json GET リクエストを作成する必要があります
http://words.bighugelabs.com/api/{version}/{api key}/{word}/{format}
ただし、Jquery は以下を生成し、404 Not Found
http://words.bighugelabs.com/api/?v=2&key=mykey&word=some-word&format=json
セパレーターは簡単に外せますか?
脚本
$(function() {
function log( message ) {
$( "<div/>" ).text( message ).prependTo( "#log" );
$( "#log" ).scrollTop( 0 );
}
$( "#thesaurus" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://words.bighugelabs.com/api/",
dataType: "json",
data: {
v: "2",
key: "mykey", //actually numbers
word: request.term,
format: "json"
//maxRows: 12,
//name_startsWith: request.term
},
success: function( data ) {
response( $.map( data.geonames, function( item ) {
return {
label: item.name + (item.noun ? ", " + item.noun : "") + ", " + item.syn,
value: item.name
}
}));
}
});
},
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" );
}
});
});
HTML
<input id="thesaurus" />
</div>
<div class="ui-widget" style="margin-top:2em; font-family:Arial">
Result:
<div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
</div>