the resource requested present origin example control cloudfront aws allow amazon-s3 cors

amazon-s3 - example - no ''access-control-allow-origin'' header is present on the requested resource



S3 no devuelve los encabezados de Access-Control-Allow-Origin? (2)

En primer lugar, asegúrese de un encabezado de Origin con cada solicitud. Si no se envía el encabezado Origin , S3 no enviará encabezados de access-control , ya que S3 los considera irrelevantes (y típicamente lo son). Un navegador (al que se refiere el mecanismo CORS) enviará automáticamente un encabezado Origin al realizar solicitudes HTTP de origen cruzado a través de XMLHTTPRequest.

En caso de cargar imágenes con img , debe agregar el crossorigin="anonymous" . Consulte la documentación de MDN en el atributo crossorigin . Esto hará que el navegador envíe un encabezado de solicitud de Origin como lo hace con XMLHTTPRequest.

Siguiendo la respuesta de Sam Selikoff, es posible que deba cambiar

<AllowedOrigin>http://*</AllowedOrigin>

a

<AllowedOrigin>http://*</AllowedOrigin> <AllowedOrigin>https://*</AllowedOrigin>

No he probado esto.

Siguiendo el comentario de Paul Draper sobre esta respuesta: Cuidado con los problemas de almacenamiento en caché. Un navegador puede usar una respuesta en caché que no incluyó los encabezados de respuesta de Access-Control apropiados. Durante el desarrollo, puede borrar su caché. En producción, debe cambiar a una nueva URL para el recurso, si anteriormente se utilizó de manera estática.

Tengo problemas para obligar a S3 a establecer encabezados CORS en todos los objetos que devuelve de un depósito, aunque CORS está habilitado, ya que las cargas S3 del lado del cliente están funcionando, ¡los objetos devueltos no tienen encabezados CORS!

La política que he habilitado es:

<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>PUT</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration>

Un ejemplo de objeto URL https://s3.amazonaws.com/captionable/meme/test

¿Alguien sabe lo que está mal?


También encontré esto con una etiqueta <image> , y después de seguir la respuesta de Myrne Stol agregué la etiqueta crossorigin=anonymous a mi etiqueta de imagen. Verifiqué que el encabezado de Origin se estaba enviando a S3, pero aún así, el encabezado Access-Control-Allow-Origin no se enviaba en respuesta.

Me encontré con esta respuesta SO y lo resolvió. Cambié el AllowedOrigin en mi configuración de S3 a esto:

<AllowedOrigin>http://*</AllowedOrigin> <AllowedOrigin>https://*</AllowedOrigin>

y ahora S3 responde con los encabezados de acceso. ¡Hurra!