我正在直接上传到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
为什么每张图片都要执行两次请求? 就像在这个例子中我只上传了一个图像,但我可以看到AWS做了一个选项请求,然后是一个put请求。
答案 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;