jQuery-File-Upload by blueimp - 附加头信息

16

我在wiki中搜索过,但找不到答案。我应该把我的其他头信息(例如Authorization头)放在JS脚本的哪里?是在onSend/beforeSend中还是其他地方?

小部件链接: https://github.com/blueimp/jQuery-File-Upload

5个回答

29

这是我如何将文件名添加为标题:

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

12

你所说的“headers”选项在哪里?https://github.com/blueimp/jQuery-File-Upload/wiki/Options - mpen
5
从那个页面上看,文件上传插件设置的选项会传递给jQuery.ajax()。除了列出的选项外,您还可以使用在http://api.jquery.com/jQuery.ajax/上记录的所有选项。但是,正如上面的答案所解释的那样,并非所有选项都一定与iframe传输兼容。 - mhsmith

10

尝试像这样做...

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

2
答案非常简单: 只需在添加部分中添加自定义标头。
  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"},

头文件中的数据未定义:data.headers = {'X-Session-Id' : "TEST-HEADER"}。 - Srikanth Jeeva
这是对我有效的代码:headers: { Authorization: 'Bearer ' + $rootScope.app.token } - Ivan Carosati

1
这是我的实现。
onSend: function(e, options) {
  var accessToken = ...;

  options.headers = {
    'Authorization': 'Bearer ' + accessToken
  };
},

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