Qu'est-ce que CORS (partage des ressources entre origines) ?
Mécanisme qui permet, dans les limites autorisées par le serveur, les requêtes vers d'autres origines et la lecture de leurs réponses, restreintes par la politique de même origine. Le serveur indique, par des en-têtes de réponse comme Access-Control-Allow-Origin, les origines dont il autorise la lecture. Pour les requêtes qu'un simple envoi de formulaire ne peut pas produire, comme un POST avec Content-Type: application/json, le navigateur envoie d'abord une vérification préalable (preflight) avec la méthode OPTIONS. C'est une règle appliquée par les navigateurs, et non un mécanisme qui protège le serveur contre les attaques.
Nom japonais: CORS(オリジン間リソース共有)
« CORS (partage des ressources entre origines) » apparaît dans 1 questions d'entraînement réparties sur 1 thèmes, dont Bases des technologies web.
Domaine: Bases des technologies web
Requêtes simples et preflight
Les requêtes GET, ou POST dans un format qu'un formulaire peut envoyer (application/x-www-form-urlencoded, multipart/form-data, text/plain), sont envoyées sans vérification, et seul Access-Control-Allow-Origin détermine si le script peut lire la réponse. Pour les requêtes qui utilisent d'autres méthodes, un autre Content-Type ou des en-têtes personnalisés, le navigateur envoie d'abord une requête OPTIONS qui indique, par Access-Control-Request-Method notamment, la méthode et les en-têtes utilisés. Si le serveur renvoie son autorisation, le navigateur envoie la véritable requête.
Questions fréquentes
Peut-on corriger une erreur CORS du côté du client ?
Non. C'est le serveur qui décide des origines autorisées à lire ses réponses : il faut ajouter les en-têtes d'autorisation appropriés aux réponses du serveur de l'API. Pour une API que l'on ne gère pas soi-même, on peut aussi l'appeler en passant par son propre serveur.
Quel est le rapport entre la politique de même origine et CORS ?
La politique de même origine interdit en principe la lecture des réponses d'autres origines, et CORS est le mécanisme qui autorise des exceptions dans les limites explicitement fixées par le serveur. Si le serveur ne renvoie pas d'autorisation CORS, la restriction de la politique de même origine s'applique telle quelle.