jQuery-File-Upload от blueimp — дополнительные заголовки

Я просмотрел вики, но не нашел ответа, куда мне поместить мои дополнительные заголовки (например, заголовок Authorization) в сценарии JS? Где-то onSend/beforeSend или?

Ссылка на виджет: https://github.com/blueimp/jQuery-File-Upload


person svenkapudija    schedule 04.04.2012    source источник


Ответы (5)


Вы пытались установить дополнительные заголовки через объект «options.headers»?

При использовании параметра forceIframeTransport: true (если IE не поддерживает загрузку файлов XHR, вам нужно вернуться к скрытому подходу iframe), то изменение заголовков не вариант: https://github.com/blueimp/jQuery-File-Upload/issues/654

Options.headers: http://api.jquery.com/jQuery.ajax/

Параметры, установленные для плагина File Upload, передаются в jQuery.ajax() и позволяют определять любые настройки ajax или обратные вызовы.

person dgrubelic    schedule 05.04.2012
comment
Где эта опция заголовков, о которой вы говорите? github.com/blueimp/jQuery-File-Upload/wiki/Options - person mpen; 12.02.2013
comment
@Mark: с этой страницы: параметры, установленные для плагина загрузки файлов, передаются в jQuery.ajax(). Таким образом, в дополнение к перечисленным параметрам вы также можете использовать все параметры, описанные на странице api.jquery.com/. jQuery.ajax. Однако, как объясняется в приведенном выше ответе, не все из них обязательно будут работать с транспортом iframe. - person mhsmith; 19.06.2013

Вот как я добавил имя файла в качестве заголовка:

$('#upload_btn').fileupload({
    singleFileUploads: true,
    beforeSend: function(xhr, data) {
        var file = data.files[0];
        xhr.setRequestHeader('X-FileName', file.name);
    },
});
person mpen    schedule 07.05.2013

Попробуйте что-то вроде этого..

beforeSend: function(xhr) {
    xhr.setRequestHeader("Accept", "application/json");
    xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
}
person dgrubelic    schedule 05.04.2012

Ответ очень прост: просто добавьте свои пользовательские заголовки в раздел добавления.

  add: function (e, data) {         

                data.headers={'X-Session-Id' : data.files[0].name.hashCode()};

                data.context = $('<button/>').text('Upload')
                .appendTo(document.body)

                .click(function () {
                    data.context = $('<p/>').text('Uploading...').replaceAll($(this));

                   // naam = naam.hashCode();
                    data.submit();
                });
        },

или при инициализации:

$('#fileupload').fileupload({
        dataType: 'json',
        multipart : false,
        maxChunkSize: 10 * 1024 * 1024,
        headers:data.headers={'X-Session-Id' : "TEST-HEADER"},
person Wim Stockman    schedule 12.10.2013
comment
данные не определены в заголовках: data.headers={'X-Session-Id' : TEST-HEADER}, - person Srikanth Jeeva; 03.03.2014
comment
Вот что сработало для меня: заголовки: {Авторизация: 'Bearer' + $rootScope.app.token} - person Ivan Carosati; 28.11.2017

Вот моя реализация

onSend: function(e, options) {
  var accessToken = ...;

  options.headers = {
    'Authorization': 'Bearer ' + accessToken
  };
},
person Andrei Kaparykha    schedule 05.03.2013