每次我尝试将图片上传到预先签名的网址时。我收到预检警告,上传失败。
我需要做什么?
据我所知,我应该上传到图片中url属性中可以看到的网址。
我尝试了各种各样的变体,但这是我目前的上传代码:
$.ajax({
type: 'PUT',
url: pData.url,
// Content type must much with the parameter you signed your URL with
contentType: 'binary/octet-stream',
// this flag is important, if not set, it will try to send data as a form
processData: false,
// the actual file is sent raw
data: $scope.file
})
.success(function() {
alert('File uploaded');
})
.error(function() {
alert('File NOT uploaded');
console.log( arguments);
});
我如何解决这个问题,我无法访问给我签名网址的后端,可能是负责人或亚马逊有错误的CORS,我该怎么检查?
感谢任何建议。
答案 0 :(得分:0)
这是CORS问题。您需要请管理员将其放入S3存储桶的CORS配置中。
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>