javascript - Aws s3 putObject 同时执行选项请求和放置请求

标签 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 也会执行两个请求,一个选项和一个 put 查看 img

enter image description here

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

最佳答案

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

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

关于javascript - Aws s3 putObject 同时执行选项请求和放置请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48732107/

相关文章:

javascript - 如何在 jquery 中制作此菜单行为

javascript - 如何仅在页面加载时在 <body> 的特定 div 中显示加载程序

javascript - Html5音频ios播放事件

node.js - 如何在dynamodb中插入json

apache - 使用 S3/EC2 时删除 ".php"文件扩展名

objective-c - 如何获取文件 Amazon S3、AWS IOS SDK 的上传日期

javascript - 在 JavaScript 中删除 DOM 节点的所有子元素

amazon-web-services - 使用 Gandi.net SSL 证书的 AWS SSL 配置

amazon-web-services - 作为 AWS CDK 部署的一部分,如何进行数据库架构迁移?

cordova - Amazon S3 - POST 请求的存储桶策略?