Typeahead Bloodhound自定义标头

8
我想在我的Bloodhound请求中添加自定义标头,这是我的代码,但它不起作用。
var datasource = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.whitespace,
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    remote: {
        url: url,
        prepare: function (query, settings) {
            var authHeaders;
            settings.type = "POST";
            settings.data = param + '=' + query;
            settings.headers = {
                'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
            };


            return settings;
        },
        wildcard: '%QUERY'
    }
});

有什么想法吗?

你能找到这个问题的解决方案吗? - Kunal Dethe
@KunalDethe,请看一下我的被接受的没有理由的负面回答。 - Viet Nguyen
https://dev59.com/a4Dba4cB1Zd3GeqPEXIj#46927923 - Saahithyan Vigneswaran
1个回答

13

为 typeahead.js v0.11.0 添加自定义标题的方法是:

var bloodhound = new Bloodhound({
datumTokenizer: function (d) {
  return Bloodhound.tokenizers.whitespace(d.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,

remote: {
  url: 'https://server/api/v1/clients?auth_token=3000193534a97fc4a252ddfc966e3ef178c071e4079d35ce4b',
  prepare: function (query, settings) {
    settings.url = settings.url + '&q=' + query
    settings.headers = {
      "Authorization": "Basic " + btoa("username:password")
    };

    return settings;
  }
},
limit: 5 });

你的回答非常完美。我花了太多时间去解决本应该很简单的问题。谢谢。 - Scott Griz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接