

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Test du CORS
<a name="testing-cors"></a>

Pour tester votre configuration CORS, une demande de contrôle en amont CORS peut être envoyée avec la méthode `OPTIONS` afin que le serveur puisse répondre s’il est acceptable d’envoyer la demande. Quand Amazon S3 reçoit une demande de contrôle en amont, S3 évalue la configuration CORS du compartiment et utilise la première règle `CORSRule` qui correspond à la demande entrante pour permettre une demande cross-origin. Pour qu’une règle corresponde, les conditions suivantes doivent être remplies : 
+ L’en-tête `Origin` d’une demande CORS adressée à votre compartiment doit correspondre aux origines de l’élément `AllowedOrigins` de votre configuration CORS.
+ Les méthodes HTTP spécifiées dans `Access-Control-Request-Method` dans une demande CORS adressée à votre compartiment doivent correspondre à la ou aux méthodes répertoriées dans l’élément `AllowedMethods` de votre configuration CORS.
+ Les en-têtes répertoriés dans l’en-tête `Access-Control-Request-Headers` d’une demande de contrôle en amont doivent correspondre aux en-têtes de l’élément `AllowedHeaders` de votre configuration CORS. 

Voici un exemple de configuration CORS. Pour créer une configuration CORS, consultez [Configuration de CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html). Pour plus d’exemples de configuration de CORS, consultez [Éléments d’une configuration CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManageCorsUsing.html). 

Pour obtenir des conseils sur la configuration et le dépannage des règles CORS, consultez [Comment configurer le CORS dans Amazon S3 et confirmer les règles CORS à l’aide de cURL ?](https://repost.aws/knowledge-center/s3-configure-cors) dans le centre de connaissances AWS re:Post.

------
#### [ JSON ]

```
[
    {
        "AllowedHeaders": [
            "Authorization"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "http://www.example1.com"
        ],
        "ExposeHeaders":  [
             "x-amz-meta-custom-header"
        ]
    
    }
]
```

------

Pour tester la configuration CORS, vous pouvez envoyer un contrôle `OPTIONS` en amont à l’aide de la commande CURL suivante. CURL est un outil de ligne de commande qui peut être utilisé pour interagir avec S3. Pour plus d’informations, consultez [CURL](https://curl.se/). 

```
 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"
```

Dans l’exemple ci-dessus, la commande `curl -v -x OPTIONS` est utilisée pour envoyer une demande de contrôle en amont à S3 afin de savoir si S3 autorise l’envoi d’une demande `PUT` sur un objet à partir de l’adresse `http://www.example1.com` d’origines multiples. Les en-têtes `Access-Control-Request-Headers` et `Access-Control-Expose-Headers` sont facultatifs.
+ En réponse à l’en-tête `Access-Control-Request-Method` de la demande `OPTIONS` de contrôle en amont, Amazon S3 renvoie la liste des méthodes autorisées si les méthodes demandées correspondent. 
+ En réponse à l’en-tête `Access-Control-Request-Headers` de la demande `OPTIONS` de contrôle en amont, Amazon S3 renvoie la liste des méthodes autorisées si les en-têtes demandés correspondent.
+ En réponse à l’en-tête `Access-Control-Expose-Headers` de la demande `OPTIONS` de contrôle en amont, Amazon S3 renvoie la liste des en-têtes autorisés si les en-têtes demandés correspondent aux en-têtes autorisés accessibles par les scripts s’exécutant dans le navigateur.

**Note**  
Lors de l’envoi d’une demande de contrôle en amont, si un ou des en-têtes de demande CORS ne sont pas autorisés, aucun des en-têtes CORS de réponse n’est renvoyé.

En réponse à cette demande `OPTIONS` de contrôle en amont, vous recevrez une réponse `200 OK`. Pour les codes d’erreur courants reçus lors du test du partage CORS et pour plus d’informations sur la résolution des problèmes liés au partage CORS, consultez [Résolution des problèmes liés au CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors-troubleshooting.html). 

```
< 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
```