【发布时间】:2015-11-16 16:16:32
【问题描述】:
我正在尝试实现一个 typeahead,它的源是一个 API,它需要一个带有数据主体的 GET 请求,而不是 url 编码的数据。我在“准备”对象中尝试了一些不同的东西,但无法将其用于 url 编码参数。是否有可能使用 typeahead 或一般的 jquery 让它不这样做?我有一种感觉 jquery 可能只是不允许你这样做,因为它会被认为是“不好的做法”,但改变 API 并不是一个真正的选择! 这是我的代码:
$(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。
谢谢!
【问题讨论】:
-
Dsettings.DataType应该是小写的dsettings.dataType = "json";? -
感谢您的建议!我尝试小写 dataType 但它不影响行为。
-
尝试使用 typeahead.js
substringMatcherfunction twitter.github.io/typeahead.js/examples/#file-the-basics-js ,见帖子
标签: jquery ajax get typeahead.js bloodhound