Я просто получаю странную ошибку при использовании этих двух инструментов. Я делаю запрос AJAX к API, а затем извлекаю данные JSON, которые хранятся в localStorage и отображаются на панели автозаполнения. Проблема в том, что в зависимости от происхождения источника автозаполнения панель будет реагировать по-разному.Autocomplete (jQuery UI) и localstorage
Вот функция обратного вызова называется на успех AJAX:
function _company_names(data)
{
localStorage.setItem('ac_source', JSON.parse(data).Result);
// Works fine
$("#search_input").autocomplete("option", "source", JSON.parse(data).Result);
// Send an AJAX request
$("#search_input").autocomplete("option", "source", localStorage.getItem('ac_source'));
}
Если я прохожу JSON.parse (данные) .Result в результате к источнику автозаполнения, это будет хорошо. Однако, если я передаю localStorage.getItem («ac_source»), виджет переменного тока отправит запрос AJAX (не используя мою собственную функцию), дующий на ветру (мой node.js попытается разобрать его и т. Д.).
Я использую localstorage для доступа к этим данным из другой части моего кода (сохраните его, чтобы сравнить его с другими исследованиями пользователей и отображать его, если запрос одинаков).
Что возвращаемый тип GetItem - строка? Вам нужно JSON.parse, что тоже, прежде чем вы сможете его использовать? Похоже, автозаполнение интерпретирует строку в качестве URL-адреса для запроса. – Rup
Вы были правы, это был вопрос синтаксического анализа. Я исправил это, воздействуя на данные в локальном хранилище, затем проанализировал его в исходном автозаполнении: \t localStorage.setItem ('ac_source', raw_data); \t $ ("# search_input"). Autocomplete ("option", "source", JSON.parse (localStorage.getItem ('ac_source')). Результат); – Simon