Я пытаюсь реализовать typeahead, источником которого является API, который ожидает запроса GET с совокупностью данных, а не закодированных в url данных. Я пробовал несколько разных вещей в объекте «подготовить», но не могу заставить его кодировать параметры URL. Возможно ли это с помощью typeahead или jquery вообще, чтобы он этого не делал? У меня есть чувство jquery, возможно, просто не позволяет вам это делать, поскольку это будет считаться «плохой практикой», но изменение API на самом деле не является вариантом! Вот мой код:Как отправить данные в тело запроса при использовании Typeahead & Bloodhound?
$(document).ready(function(){
var people = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'apiUrl',
prepare: function (query, settings) {
settings.type = "GET";
settings.contentType = "application/json";
settings.DataType = "json";
settings.processData = false;
settings.data = JSON.stringify({"search":"people","query":query});
return settings;
}
}
});
$('.typeahead').typeahead(null, {
source: people
});
})
Я использую JQuery 1.11.3 & typeahead.js 0.11.1.
Спасибо!
'' D' на settings.DataType' должны быть в нижнем регистре '' d' настройки. dataType = "json"; '? – guest271314
Спасибо за предложение! Я попробовал уменьшить dataType, но это не повлияло на поведение. – datesss
Попробуйте использовать функцию substringMatcher' типа typeahead.js https://twitter.github.io/typeahead.js/examples/#file-the-basics-js, см. Сообщение – guest271314