Я реализую автозаполнение jquery в форме поиска и получаю предложения от службы предложений автозаполнения Google Search Appliance, которая возвращает набор результатов в json.
Я пытаюсь сделать это, чтобы перейти кGSA для получения предложений, когда пользователь вводит что-то в поле поиска.
URL-адрес для получения предложений json выглядит следующим образом:
http://gsaurl/suggest?q=<query>&max=10&site=default_site&client=default_frontend&access=p&format=rich
Возвращаемый json выглядит следующим образом:
{ "query":"re", "results": [ {"name":"red", "type":"suggest"}, {"name":"read", "type":"suggest"}] }
Код автозаполнения jQuery выглядит следующим образом:
$(#q).autocomplete(searchUrl, {
width: 320,
dataType: 'json',
highlight: false,
scroll: true,
scrollHeight: 300,
parse: function(data) {
var array = new Array();
for(var i=0;i<data.results.length;i++)
{
array[i] = { data: data.results[i], value: data.results[i].name, result: data.results[i].name };
}
return array;
},
formatItem: function(row) {
return row.name;
}
});
Это работает в IE, но не работает в Firefox, поскольку данные возвращаются при разборефункция равна нулю.Есть идеи, почему это так?
Обходной путь
Я создал страницу aspx, чтобы вызвать службу предложения GSA и вернуть json из службы предложения.Использование этой страницы в качестве прокси и установка ее в качестве URL-адреса в автозаполнении jQuery работали как в IE, так и в FireFox.