Aws s3 putObject正在执行选项请求和放置请求

时间:2018-02-11 13:43:09

标签: javascript amazon-web-services amazon-s3 aws-sdk

我正在直接上传到aws s3,如下所示:

for (var i = 0; i < imgUploadList.length; i++) {
    var params = {
              Key: 'images/' + imgUploadList[i].id + '/' + imgUploadList[i].img.name,
              ContentType: 'image/jpeg',
              Body: imgUploadList[i].img,
              ACL: 'public-read'
            };

            bucket.putObject(params, function(err, data) {
              if (err) {
                console.log(err);
              } else {
                //Run callback when all images are uploaded
                imagesUploaded.push("dummy"); //Just to end loop when all images are done
                if (imagesUploaded.length === imgUploadList.length) {
                  console.log("done ulpoading");
                  callback();
                }
              }

}

但即使我只上传了一张图片,aws会做两个请求,一个选项和一个看看img

enter image description here

为什么每张图片都要执行两次请求? 就像在这个例子中我只上传了一个图像,但我可以看到AWS做了一个选项请求,然后是一个put请求。

1 个答案:

答案 0 :(得分:3)

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

&#34;此外,对于可能对服务器数据造成副作用的HTTP请求方法(特别是对于GET以外的HTTP方法,或对某些MIME类型的POST使用),规范要求那些浏览器&#34;预检&#34;请求,使用HTTP OPTIONS请求方法从服务器请求支持的方法,然后,在&#34;批准&#34;从服务器,使用实际的HTTP请求方法发送实际请求。&#34;