Я реализую автозаполнение jquery в форме поиска и получаю предложения от службы предложений Google Autocomple Search Appliance, которая возвращает набор результатов в json.jQuery Autocomplete Json Ajax перекрестная проблема с браузером Google Search Appliance
То, что я пытаюсь сделать, это перейти к 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, так как данные, возвращаемые в функции parse, равны нулю. Любые идеи, почему это так?
Обход
Я создал страницу ASPX для вызова GSA предложить услугу и вернуть JSON из предложить услугу. Используя эту страницу в качестве прокси-сервера и устанавливая его как URL-адрес в автозаполнении jQuery, работая как в IE, так и в FireFox.