0
我使用Amazon S3作为后端。我正确配置了存储桶以允许CORS从我的域中获取任何内容。 我测试过,它适用于常规文件(即通过Amazon AWS控制台或S3命令行工具上传)。Amazon S3 CORS请求上传文件失败
我的应用程序还将JSON文件本身上传到S3存储桶。有趣的是,它需要CORS正确配置上传才能成功。它和我的JSON文件放入存储区。
的问题是,当我提出一个CORS GET请求(jQuery的$.ajax
)这些文件我之前上传,请求失败,出现典型的消息
No 'Access-Control-Allow-Origin' header is present on the requested resource.
请记住,使用任何其他文件在应用程序未上传的同一个存储桶中,路径相同但来自控制台或命令行工具的请求成功。
这是怎么发生的?
我CORS配置:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>http://example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>https://example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
你在通过本地主机进行ajax请求吗?这是否可能是一个同源政策问题(https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy)? –
这不是因为GET请求只对先前从应用程序**上载的文件**失败,如果我通过S3控制台或S3CMD将它们上载,它会成功。 – rupps
你可以发布你的JavaScript代码吗? –