我似乎不能让远程查询正确地使用POST。
var creditors = new Bloodhound({
datumTokenizer: function (d) {
return Bloodhound.tokenizers.whitespace(d.value)
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: "../getCreditors",
replace: function(url, query) {
return url + "#" + query;
},
ajax : {
type: "POST",
data: $.param({q: queryInput.val()})
}
}
});
queryInput.val()不获取对象的当前值,仅获取侦探猎犬对象实例化时的值。如何将查询字符串放入ajax数据选项?
发布于 2014-03-21 23:19:50
您可以使用$.ajax的beforeSend
var creditors = new Bloodhound({
datumTokenizer: function (d) {
return Bloodhound.tokenizers.whitespace(d.value)
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: "../getCreditors",
replace: function(url, query) {
return url + "#" + query;
},
ajax : {
beforeSend: function(jqXhr, settings){
settings.data = $.param({q: queryInput.val()})
},
type: "POST"
}
}
});
发布于 2015-06-26 18:17:12
您可以将prepare
属性与remote
或prefetch
一起使用,但请注意函数签名会发生变化。使用prefetch
的示例
var Bloodhound = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
url: remote,
prepare: function (settings) {
settings.type = "POST";
settings.contentType = "application/json; charset=UTF-8";
return settings;
},
remote: function (query, settings) {
settings.type = "POST";
settings.data = {q: query, foo: 'bar'}; // you can pass some data if you need to
return settings;
}
}
});
请记住,使用remote
时,函数签名会随着function(query, settings)
的变化而变化。
https://stackoverflow.com/questions/21821658
复制相似问题