вот моя проблема: CORS настроены так, как предполагалось на S3:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>
когда я пытаюсь получить файл (используя jQuery с опцией CrossDomain = true)
из A.example.com -> B.example.com/file.js (работает с правильными заголовками) Когда я пытаюсь выполнить тот же запрос из другого домена: C.dev.example.com -> B.example.com/file.js // (не получается)
Однако для второго примера, когда я смотрю сетевые журналы в Chrome, мой первый запрос ОПЦИИ:
у него есть правильные заголовки ответа CORS:
access-control-allow-headers: access-control-allow-headers
access-control-allow-methods: GET
access-control-allow-origin: *
access-control-max-age: 3000
content-length: 0
date: Mon, 26 Mar 2018 14:38:36 GMT
server: AmazonS3
status: 200
vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
via: 1.1 f19281f08e79aa6c6634266c50732dd5.cloudfront.net (CloudFront)
x-amz-cf-id: S2aMKSsJspB9p2RVxLMNh49iQ3Rc0Uims-EEIcjbxC42_OpqJpoUXQ==
x-cache: Miss from cloudfront
Однако запрос GET (сразу после OPTIONS):
accept-ranges: bytes
content-length: 817
content-type: application/javascript
date: Mon, 26 Mar 2018 14:19:46 GMT
etag: "5b85d498318db8095a776fdcae57c624"
last-modified: Mon, 26 Mar 2018 14:19:20 GMT
server: AmazonS3
status: 200
via: 1.1 f19281f08e79aa6c6634266c50732dd5.cloudfront.net (CloudFront)
x-amz-cf-id: C0xswS08mXDHkagm3phQT59wjclwEX9ZZHXr57OpZVMHzkf432H7dg==
x-cache: RefreshHit from cloudfront
Мой TTL на Cloudfront составляет 5 секунд (это должно быть агрессивно для моего варианта использования). Я использую h2 протокол вместо http / 1.1
Это связано с: Chrome S3 Cloudfront: нет заголовка Access-Control-Allow-Origin в начальном запросе XHR
Больше информации здесь: https://forums.aws.amazon.com/thread.jspa?messageID=796312