# API et Autoriser Cross Domain - CORS

Si vous souhaitez accéder a une api(ici celle de GLPI) via JavaScript par exemple, il est possible que vous vous confrontiez à un problème de requêtes CORS. Exemple échec des requêtes CORS du a la politique de "same origin"

Ici, on va paramétrer apache pour autoriser les requêtes CORS provenant de certains domaines.

Pour notre cas nous avons un serveur Debian et donc c'est dans le fichier /etc/apache2/conf-available/security.conf

Dans le bas du fichier vous pouvez trouver, généralement commenté, la ligne suivante:

#Header set X-Frame-Options: "sameorigin"

C'est après cette ligne que nous allons poser notre configuration.

#... il y a des choses avant ...

# On interdit les requêtes Cross Domain par défaut
Header set X-Frame-Options SAMEORIGIN
# On ajoute une exception a la regle précédente. Notez qu'a la place du - on peut y mettre d'autres information tel que le domaine d'origine, voir les logs access d'apache au besoin
# Le tiret ici ouvre une brèche mais permet a un script en local sur sa machine d'y accéder
Header append X-Frame-Options "ALLOW-FROM -"
# Liste des méthodes autorisés
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
# Bon bah la c'est claire
Header set Access-Control-Allow-Credentials true
Header always set Access-Control-Max-Age "1000"
# Liste des headers autorisés, certains ici sont spécifiques a notre API, a savoir GLPI
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token, Accept-Encoding, App-Token, Session-Token"

On redémarre apache après cet ajout

service apache2 restart