我在S3应用商店图像,然后代理他们通过的Cloudfront。我很高兴能够使用新的S3 CORS支持,以便我可以使用HTML5画布方法(它具有交叉源策略),但似乎无法正确配置我的S3和Cloudfront。当我尝试将图像转换为画布元素时,仍然遇到“未捕获错误:SECURITY_ERR:DOM异常18”。正确的S3 + Cloudfront CORS配置?
这是我到目前为止有:
S3
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>MY_WEBSITE_URL</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>MY_CLOUDFRONT_URL</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
的Cloudfront
起源
Origin Protocol Policy: Match Viewer
HTTP Port: 80
HTTPS Port: 443
行为
Origin: MY_WEBSITE_URL
Object Caching: Use Origin Cache Headers
Forward Cookies: None
Forward Query Strings: Yes
有什么我在这里失踪?
UPDATE: 刚试过基于这个问题Amazon S3 CORS (Cross-Origin Resource Sharing) and Firefox cross-domain font loading
仍然没有去改变头来
<AllowedHeader>Content-*</AllowedHeader>
<AllowedHeader>Host</AllowedHeader>
。
UPDATE:更多资讯ON REQUEST
Request
URL:https://d1r5nr1emc2xy5.cloudfront.net/uploaded/BAhbBlsHOgZmSSImMjAxMi8wOS8xMC8xOC81NC80Mi85NC9ncmFzczMuanBnBjoGRVQ/32c0cee8
Request Method:GET
Status Code:200 OK (from cache)
UPDATE
我想也许我的要求是不正确的,所以我试图让CORS与
img.crossOrigin = '';
但随后的图像没有按无法加载,并且出现错误:跨源资源共享策略拒绝了跨源图像加载。
你可以在这里发布你的发布请求吗?就像你的策略和参数在上传到s3时在post请求中传递一样。 –
为什么POST请求与GET请求相反? – kateray
好的,你能提供关于获取请求的信息吗? –