【问题标题】:jQuery-File-Upload by blueimp - additional headersblueimp 的 jQuery-File-Upload - 附加标头
【发布时间】:2012-04-18 04:52:11
【问题描述】:

我已经搜索了wiki,但找不到答案我应该将我的附加标头(例如Authorization 标头)放在 JS 脚本中的什么位置?在某处onSend/beforeSend 还是?

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

【问题讨论】:

    标签: php jquery file-upload blueimp


    【解决方案1】:

    这就是我将文件名添加为标题的方式:

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

    【讨论】:

      【解决方案2】:

      您是否尝试通过“options.headers”对象设置额外的标题?

      如果使用 forceIframeTransport: true 选项(在 IE 不支持 XHR 文件上传的情况下,您需要使用隐藏 iframe 方法),那么修改标头不是一个选项:https://github.com/blueimp/jQuery-File-Upload/issues/654

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

      为文件上传插件设置的选项被传递给 jQuery.ajax() 并允许定义任何 ajax 设置或回调。

      【讨论】:

      • 您所说的“标题”选项在哪里? github.com/blueimp/jQuery-File-Upload/wiki/Options
      • @Mark:从那个页面:“为文件上传插件设置的选项被传递给 jQuery.ajax()”。因此,除了列出的选项之外,您还可以使用api.jquery.com/jQuery.ajax 中记录的所有选项。但是,正如上述答案所解释的,并非所有这些都必须与 iframe 传输一起使用。
      【解决方案3】:

      试试这样的..

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

      【讨论】:

        【解决方案4】:

        答案很简单: 只需在添加部分添加您的自定义标题

          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"},
        

        【讨论】:

        • 数据在 headers 中未定义:data.headers={'X-Session-Id' : "TEST-HEADER"},
        • 这对我有用:标头:{ Authorization: 'Bearer' + $rootScope.app.token }
        【解决方案5】:

        这是我的实现

        onSend: function(e, options) {
          var accessToken = ...;
        
          options.headers = {
            'Authorization': 'Bearer ' + accessToken
          };
        },
        

        【讨论】:

          猜你喜欢
          • 2015-03-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-13
          • 1970-01-01
          • 2015-09-13
          相关资源
          最近更新 更多