Roc*_*tar 3 javascript amazon-s3 cors amazon-cloudfront
我们使用Amazon S3 + CloudFront来提供JSON文件.我们上传了两个文件,让我们考虑为j1.json和j2.json.这两个文件最初都在响应中响应有效的CORS头,但是当在j2.json上运行失效时,它的头响应发生了变化,我们正面临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>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)
j1.json的响应头
两个JSON文件都在同一个存储桶中,但j2.json响应缺少这些标头
Access-Control-Allow-Methods ?GET
Access-Control-Allow-Origin ?*
Access-Control-Max-Age ?3000
Run Code Online (Sandbox Code Playgroud)
我们尝试删除并再次上传对象,它没有在响应中响应CORS头.这个问题的可能原因是什么?以及如何解决?
Mic*_*bot 13
在S3返回正确的CORS响应头之前,需要查看该请求是否为CORS请求.
默认情况下,CloudFront会尽可能少地将标头转发到源,因为源所需的标头越少,您的缓存命中率就越高(因为任何未发送到源的标头都不会导致原点发生变化它的响应,因此预期对给定请求的所有响应都不会变化,因此可以缓存.但是对于CORS请求,我们需要S3来查看一些特定的头文件,以便它可以做出相应的反应.
在"缓存行为"配置中,您需要将这3个请求标头列入白名单以转发到源.
Access-Control-Request-Headers
Access-Control-Request-Method
Origin
Run Code Online (Sandbox Code Playgroud)
一旦此更改完成,失效也可能是适当的.
| 归档时间: |
|
| 查看次数: |
1731 次 |
| 最近记录: |