8

I would like to add a custom header into my bloodhound request, here is my code but it doesn't work.

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'
    }
});

Any idea?

Viet Nguyen
  • 2,285
  • 2
  • 26
  • 43

1 Answers1

13

The way to add custom headers for typeahead.js v0.11.0 is:

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 });
Esteban Gatjens
  • 4,651
  • 1
  • 14
  • 8
  • Your answer was perfect. I spent way too much time trying to solve something that should have been simple. Thanks – Scott Griz Mar 22 '18 at 21:48