IE将标头从HTTP POST请求剥离到S3

时间:2013-05-15 09:13:08

标签: ajax internet-explorer http post amazon-s3

我正在通过AJAX直接进行S3多部分文件上传。在IE浏览器的所有浏览器下一切正常。

S3在每个POST请求中都需要一个Authorization HTTP标头,其中包含正在上传的文件片的签名。

似乎IE从请求中删除了此标头,产生403响应。 更有趣的是IE不会剥离另一个自定义S3标题:x-amz-date

知道如何强制执行“授权”标题吗?

根据要求,这是我的代码:

initiateUpload: function() {
  var response = this.sign({method:'POST', path: this.key + '?uploads'});
  this.request({
    method: 'POST',
    url: response.url,
    headers: {
      'x-amz-date': response.date,
      'Authorization': response.signature
    },
    onLoad: this.uploadParts.bind(this)
  });
},

request: function(params){
  var xhr = new XMLHttpRequest();
  if (params.onLoad) xhr.addEventListener("load", params.onLoad, false);
  if (params.onUploadStart) xhr.upload.onloadstart = params.onUploadStart;
  if (params.onUploadProgress) xhr.upload.onprogress = params.onUploadProgress;
  xhr.open(params.method, params.url, true);
  for (h in params.headers)
    xhr.setRequestHeader(h, params.headers[h]);
  xhr.send(params.body);
},

0 个答案:

没有答案