Prueba de CORS
Para probar la configuración de CORS, se puede enviar una solicitud de comprobación previa de CORS con el método OPTIONS
para que el servidor pueda responder si es aceptable para enviar la solicitud. Cuando Amazon S3 recibe una solicitud de comprobación previa, S3 evalúa la configuración de CORS para el bucket y usa la primera regla CORSRule
que coincide con la solicitud entrante para habilitar una solicitud entre orígenes. Para que una regla coincida, se deben cumplir las siguientes condiciones:
-
El encabezado
Origin
de una solicitud de CORS a su bucket debe corresponderse con los orígenes del elementoAllowedOrigins
de su configuración de CORS. -
Los métodos HTTP que se especifiquen en el
Access-Control-Request-Method
en una solicitud de CORS a su bucket deben corresponderse con el método o métodos enumerados en el elementoAllowedMethods
de su configuración de CORS. Los encabezados mostrados en el encabezado
Access-Control-Request-Headers
de una solicitud de comprobación previa deben coincidir con los encabezados del elementoAllowedHeaders
de la configuración de CORS.
A continuación, se muestra un ejemplo de configuración de CORS. Para crear una configuración de CORS, consulte Configuración de CORS. Para obtener más ejemplos de una configuración de CORS, consulte Elementos de una configuración de CORS.
Para probar la configuración de CORS, puede enviar una comprobación de OPTIONS
previa mediante el siguiente comando CURL. CURL es una herramienta de línea de comandos que se puede utilizar para interactuar con S3. Para obtener más información, consulte CURL
curl -v -X OPTIONS \ -H "Origin: http://www.example1.com" \ -H "Access-Control-Request-Method: PUT" \ -H "Access-Control-Request-Headers: Authorization" \ -H "Access-Control-Expose-Headers: x-amz-meta-custom-header"\ "http://bucket_name.s3.amazonaws.com/object_prefix_name"
En el ejemplo anterior, el comando curl -v -x OPTIONS
se usa para enviar una solicitud de comprobación previa a S3 para preguntar si S3 le permite enviar una solicitud PUT
en un objeto desde el http://www.example1.com
entre orígenes. Los encabezados Access-Control-Request-Headers
y Access-Control-Expose-Headers
son opcionales.
-
En respuesta al encabezado
Access-Control-Request-Method
en la solicitudOPTIONS
de comprobación previa, Amazon S3 devuelve la lista de métodos permitidos si los métodos solicitados coinciden. -
En respuesta al encabezado
Access-Control-Request-Headers
en la solicitud deOPTIONS
de comprobación previa, Amazon S3 devuelve la lista de encabezados permitidos si los encabezados solicitados coinciden. -
En respuesta al encabezado
Access-Control-Expose-Headers
en la solicitud deOPTIONS
de comprobación previa, Amazon S3 devuelve la lista de encabezados permitidos si los encabezados solicitados coinciden con los encabezados permitidos a los que se puede acceder por scripts que se ejecutan en el navegador.
nota
Al enviar una solicitud de comprobación previa, si alguno de los encabezados de solicitud de CORS no está permitido, no se devuelve ninguno de los encabezados de CORS de respuesta.
En respuesta a esta solicitud de OPTIONS
de comprobación previa, recibirá una respuesta de 200 OK
. Para ver los códigos de error más comunes que se reciben al probar CORS y obtener más información para resolver los problemas relacionados con CORS, consulte Solución de problemas relacionados con CORS.
< HTTP/1.1 200 OK < Date: Fri, 12 Jul 2024 00:23:51 GMT < Access-Control-Allow-Origin: http://www.example1.com < Access-Control-Allow-Methods: GET, PUT, POST, DELETE < Access-Control-Allow-Headers: Authorization < Access-Control-Expose-Headers: x-amz-meta-custom-header < Access-Control-Allow-Credentials: true < Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method < Server: AmazonS3 < Content-Length: 0