使用 AJAX 数据源时,我可以在 Select2 中设置查询字符串参数吗?

Can I set the query string parameters in Select2 when using AJAX data source?

我 运行 陷入 "weird"(也许不是)的情况,我需要通过 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 在 URL 上发送的值。

但我不知道如何使用 Select2 实现此目的。我一直在寻找一些信息但没有成功,这就是我到目前为止所看到的:

但是none说出我需要什么。有人知道如何实现吗?

更改数据对象以反映您希望在查询字符串中具有的属性:

data: function (params) {
  return {
    slug: params.term, 
    description: params.term,
    content: params.term
  };
},

在开发工具网络中仔细检查这确实是作为 GET 完成的,否则尝试将 type:'GET' 添加到 ajax 选项