javascript - Jquery 文件上传 - 在 IE9 中不发送标题

标签 javascript http-headers internet-explorer-9 jquery-file-upload blueimp

我正在使用 jQuery Fileupload上传文件。它不发送我设置到服务器的 header 。为什么 Authorization header 仅在 IE 中丢失,但在 chrome 中传递?

代码如下:

upload_photo: function(){
  var url =  '/api/v1/upload';
  $('#photoupload').fileupload({
      url: url,
      dataType: 'json',
      paramName: 'uploadFile',
      beforeSend: function ( xhr ) {
          setHeader(xhr);
          $("#check_progress").html('true');
      },                    
      done: function (e, responseJSON) {
          var id = responseJSON.result.id;
          url = responseJSON.result.url;
          var photo_ids = $("#photo_ids");
          var val = photo_ids.val();
          photo_ids.val(val + id.toString() + ",");
          $(".photothumb-wapper").append('<div class=\"photothumb\" id="post_photo_'+id+'"><div><img  src=\"'+url+'\" /></div><img class=\"thumb-delete photo_delete\" id=\"'+id+'\" title=\"Remove\" src=\"/assets/delete-red.png\"></div>');
          $("#check_progress").html("");
      },
      start: function (e, data) {
          $(".photothumb-wapper").append('<div class="photothumb photoprogress" style="border:none"><img src="/assets/ajax-loader.gif" /></div>');
      },
      always: function (e, data) {
          $(".photoprogress").remove();
      }
  });
}

var setHeader = function (xhr) {
    xhr.setRequestHeader('Authorization', 'Bearer fdf49c4f1cfgc176eb952f18eeefaec3e7');
};

在 IE 中传递的 header :

Request             : POST /api/v1/upload HTTP/1.1 
Accept              : text/html, application/xhtml+xml, \*/\* 
Referer             : url
Accept-Language     : en-US
User-Agent          :Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) 
Content-Type        :multipart/form-data; boundary=---------------------------7de2dfe037204f6 
Accept-Encoding     :gzip, deflate 
Host                :url 
Content-Length      :776595 
DNT                 :1 
Connection          :Keep-Alive 
Cache-Control       :no-cache       
Cookie              :sitecookies

在 Chrome 中传递的 header :

ResponseHeaders
  date : Tue, 04 Mar 2014 07:32:20 GMT
  Connection: Keep-Alive
  content-length:225
  content-type:application/json; charset=utf-8
  cache-control:no-cache
RequestHeaders
  Accept: application/json, text/javascript, \*/\*; q=0.01
  Authorization: Bearer fdf49c4f1cfgc176eb952f18eeefaec3e7
  X-Requested-With: XMLHttpRequest

为什么 IE 中缺少 Authorization header ?

最佳答案

This回答我的问题,

只有支持 XHR 文件上传的浏览器才支持设置自定义 header 。

关于javascript - Jquery 文件上传 - 在 IE9 中不发送标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22165996/

相关文章:

ruby-on-rails-3 - rails request.env ["HTTP_REFERER"] 在heroku 上给nil

css - IE 过滤语句打破 IE9 背景裁剪

javascript - 如果 setInterval 函数没有足够的时间在给定的时间间隔内执行其功能怎么办?

javascript - 如何通过ajax向java servlet发送数据

javascript - 图片 - React JS 中的 onclick 事件

c# - 通过 jquery 在中继器内单击复选框

css - 与IE10+相比,IE9不支持的所有CSS规则有没有聪明的方法?

javascript - 让两种不同的点击方法在单个 Jquery 函数中工作

javascript - 如何启用 CORS

jquery - 忽略 Access-Control-Expose-Headers 设置