我遇到了一个奇怪的" (可能不是)我需要通过URL传递参数而不是将它们作为q
发送的情况。请查看docs中的以下示例:
$(".js-data-example-ajax").select2({
ajax: {
url: "https://api.github.com/search/repositories",
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term, // search term
page: params.page
};
},
processResults: function (data, params) {
params.page = params.page || 1;
return {
results: data.items,
pagination: {
more: (params.page * 30) < data.total_count
}
};
},
cache: true
},
...
});
在上面的示例中,params.term
被发送到服务器,您可以使用任何机制来获取它并执行您想要执行的操作。
在我的情况下,我将搜索词发送到API端点。 API期望类似以下示例:
http://someurl?slug=56&title=56&description=56&content=56
换句话说:
'http://someurl?slug='+params.term+'&title='+params.term+'&description='+params.term+'&content='+params.term
正如您所知,params.term
成为要在API的网址上发送的值。
但我不知道如何用Select2实现这一目标。我一直在寻找一些信息,但没有成功,这就是我到目前为止所看到的:
但没有人说我需要什么。有没有想过如何实现这个目标?
答案 0 :(得分:4)
更改数据对象以反映您希望在查询字符串中包含的属性:
data: function (params) {
return {
slug: params.term,
description: params.term,
content: params.term
};
},
仔细检查开发工具网络,这确实是作为GET完成的,否则尝试将type:'GET'
添加到ajax选项