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
Originde una solicitud de CORS a su bucket debe corresponderse con los orígenes del elementoAllowedOriginsde su configuración de CORS. -
Los métodos HTTP que se especifiquen en el
Access-Control-Request-Methoden una solicitud de CORS a su bucket deben corresponderse con el método o métodos enumerados en el elementoAllowedMethodsde su configuración de CORS. Los encabezados mostrados en el encabezado
Access-Control-Request-Headersde una solicitud de comprobación previa deben coincidir con los encabezados del elementoAllowedHeadersde 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 obtener orientación sobre la configuración y solución de problemas de las reglas de CORS, consulte ¿Cómo puedo configurar CORS en Amazon S3 y confirmar las reglas de CORS mediante cURL?
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-Methoden la solicitudOPTIONSde 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-Headersen la solicitud deOPTIONSde comprobación previa, Amazon S3 devuelve la lista de encabezados permitidos si los encabezados solicitados coinciden. -
En respuesta al encabezado
Access-Control-Expose-Headersen la solicitud deOPTIONSde 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