Ho un bucket S3 con la seguente configurazione CORS.Le intestazioni CORS di Amazon S3 vengono visualizzate solo durante OPZIONI (preflight) e non durante la richiesta GET
<?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>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Il controllo di preflight funziona come previsto.
★ ~$ curl -i -X OPTIONS -H "Origin: http://stackoverflow.com" -H "Access-Control-Request-Method: GET" https://s3.amazonaws.com/random-stuff-ohyea/coderot.gif
HTTP/1.1 200 OK
x-amz-id-2: H6tzMUCJtYgiCRrhj5DucMhjjYtj1kKWqL7u2yaRGEorOeKhu/sTKlgGqY7uHxQC
x-amz-request-id: E784C4373565CBE6
Date: Mon, 21 Oct 2013 22:14:18 GMT
Access-Control-Allow-Origin: http://stackoverflow.com
Access-Control-Allow-Methods: GET
Access-Control-Max-Age: 3000
Access-Control-Allow-Credentials: true
Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
Content-Length: 0
Server: AmazonS3
Tuttavia l'intestazione di origine su una richiesta GET no.
★ ~$ curl -iI -H "Origin: http://stackoverflow.com" https://s3.amazonaws.com/random-stuff-ohyea/coderot.gif
HTTP/1.1 200 OK
x-amz-id-2: KlrSviRSwq/40zPwOGp2/lJZk0J2Fyu7kOg966osOvQ2mpbpiv5BLkihGSOfoLd8
x-amz-request-id: 9D051B0001F48AB7
Date: Mon, 21 Oct 2013 22:11:57 GMT
Last-Modified: Mon, 21 Oct 2013 22:10:53 GMT
ETag: "4fa16333380378e116479646b40dd1ee"
Accept-Ranges: bytes
Content-Type: image/gif
Content-Length: 1774246
Server: AmazonS3
Questo è importante perché Firefox non sembra fare preflight durante il caricamento di font remoti che ho nel mio secchio S3. Sembra solo di inviare l'intestazione di origine.
Ulteriore debug mostra che se includo un'intestazione "Access-Control-Request-Method: GET" nella mia richiesta get ottengo le intestazioni CORS corrette indietro, tuttavia Firefox non lo fa. – reconbot
Una richiesta GET non elaborata per impostazione predefinita non esegue un controllo Preflight. [Spec. W3] (http://www.w3.org/TR/cors/#cross-origin-request-with-preflight-0), [MDN] (https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS # Preflighted_requests) –