Я искал через wiki, но не смог найти ответ, где я должен поместить мои дополнительные заголовки (например, заголовок Authorization
) в сценарии JS? Где-то по onSend
/ beforeSend
или?
Ссылка виджета: https://github.com/blueimp/jQuery-File-Upload
Вы пытались установить дополнительные заголовки через объект options.headers?
Если вы используете параметр forceIframeTransport: true (с IE, не поддерживающим загрузку файлов XHR, вам нужно отказаться от скрытого подхода iframe), тогда изменение заголовков не является вариантом: https://github.com/blueimp/jQuery-File-Upload / вопросы / 654
Параметры, установленные для плагина загрузки файлов, передаются в jQuery.ajax () и позволяют определять любые параметры ajax или обратные вызовы.
Вот как я добавил имя файла в виде заголовка:
$('#upload_btn').fileupload({ singleFileUploads: true, beforeSend: function(xhr, data) { var file = data.files[0]; xhr.setRequestHeader('X-FileName', file.name); }, });
Попробуй что-нибудь вроде этого ..
beforeSend: function(xhr) { xhr.setRequestHeader("Accept", "application/json"); xhr.setRequestHeader("Content-type", "application/json; charset=utf-8"); }
Ответ прост: просто добавьте свои собственные заголовки в раздел добавления
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"},
Вот моя реализация
onSend: function(e, options) { var accessToken = ...; options.headers = { 'Authorization': 'Bearer ' + accessToken }; },