在Select2中传递参数url

时间:2015-11-24 06:40:04

标签: javascript json ajax

我正在尝试创建标记并使用ajax来显示最常用的标记,然后我使用Select2插件来处理这种情况。到目前为止,在我的 javascript代码中调用我的JSON数据时,我被困住了:

$("#tags").select2({
    ajax: {
        url: "api/v1/tags/",
        dataType: "json",
        cache: true,
        quietMillis: 150,
        allowClear: true,
        data: function(params) {
            return {
               tags: params.term
            }
        },
        processResults: function (data) {
            return {
                results: $.map(data, function(obj) {
                    return { 
                        id: obj.id, 
                        text: obj.slug 
                    };
                })
            };
        }
    },
    tags: true,
    placeholder: "Search or insert tags",
    tokenSeparators: [',', ' '],
});

它返回此错误:

  

获取http://lesson1.dev/api/v1/tags/?tags=mykeyword 404(未找到)

我将JSON数据保存在此目录中/api/v1/tags/a ... /api/v1/tags/z

我只是想知道如何将Select2参数中的参数url ?tags=keyword更改为/keyword,我在供应商文档中寻找,但我什么都没得到。谁能帮我?我需要你的建议。

1 个答案:

答案 0 :(得分:0)

问题不在您的脚本中,而是在您尝试访问的API中。它返回404,这意味着您提供了错误的网址资源根本就没有

尝试将关键字值直接连接到网址字符串,如下所示,而不是使用数据参数:

$("#tags").select2({
  ajax: {
    url: "api/v1/tags/" + keywordValue,
    dataType: "json",
    cache: true,
    quietMillis: 150,
    allowClear: true,
    processResults: function (data) {
      return {
        results: $.map(data, function(obj) {
          return { 
            id: obj.id, 
            text: obj.slug 
          };
        })
      };
    }
  },
    tags: true,
    placeholder: "Search or insert tags",
    tokenSeparators: [',', ' '],
  });