diff --git a/README.md b/README.md index 7ba0b20005bc5761d4e5d8f950f1c69c6657c70f..8cb25759f6516ed80e3e1c794ffe7db05cf657d4 100644 --- a/README.md +++ b/README.md @@ -2,22 +2,45 @@ A utiliser avec XAMPP, WAMP, Laragon, ou équivalent. -##Exemples d'appels +### Exemples d'appels - Restaurer la base de données à partir du fichier users.orig.json (GET) : - users.php?function=restore + +``` +users.php?function=restore +``` + - Envoyer tous les users (GET) : - users.php?function=readall + +``` +users.php?function=readall +``` + - Envoyer le user dont l'id a la valeur 1 (GET) : - users.php?function=read&user=1 + +``` +users.php?function=read&user=1 +``` + - Recevoir un nouveau user et envoyer le tableau users mis à jour (POST) : - users.php?function=create + +``` + users.php?function=create +``` + - Supprimer le user dont l'id a la valeur 1 et envoyer le tableau users mis à jour (DELETE) : - users.php?function=delete&user=1 + +``` +users.php?function=delete&user=1 +``` + - Mettre à jour le user dont l'id a la valeur 1 et envoyer le tableau users mis à jour (PUT) : - users.php?function=update&user=1 - -## Configurer Apache pour les requêtes Cross-Origin + +``` +users.php?function=update&user=1 +``` + +### Configurer Apache pour les requêtes Cross-Origin Lors de l'exécution de la fonction fetch(…) côté front, si les réponses HTTP du serveur web ne contiennent pas d'en-tête Access-Control-Allow-Origin, le navigateur va bloquer l'exécution de fetch. C'est ce qu'on appelle le Cross-origin Resource Sharing (CORS), ou “partage de ressources entre origines multiplesâ€, qui est restreint par défaut pour des raisons de sécurité. @@ -25,21 +48,25 @@ Si vous utilisez un serveur Apache (cas de XAMPP, WAMP, Laragon, etc.), vous dev Exemple qui permet d'autoriser les requêtes depuis 127.0.0.1:5500 (Live Server de VSCode) et localhost:5173 (serveur web de Vite.js) : +``` <Directory "..."> - ... - SetEnvIf Origin "^http?://[^/]*(127.0.0.1:5500|localhost:5173)$" ORIGIN=$0 - Header set Access-Control-Allow-Origin %{ORIGIN}e env=ORIGIN - Header set Access-Control-Allow-Credentials "true" env=ORIGIN - # Always set Vary: Origin when it's possible you may send CORS headers - Header merge Vary Origin - Header set Access-Control-Allow-Methods "GET,POST,PUT,DELETE" - Header set Access-Control-Allow-Headers "Content-Type" +... +SetEnvIf Origin "^http?://[^/]\*(127.0.0.1:5500|localhost:5173)$" ORIGIN=$0 +Header set Access-Control-Allow-Origin %{ORIGIN}e env=ORIGIN +Header set Access-Control-Allow-Credentials "true" env=ORIGIN # Always set Vary: Origin when it's possible you may send CORS headers +Header merge Vary Origin +Header set Access-Control-Allow-Methods "GET,POST,PUT,DELETE" +Header set Access-Control-Allow-Headers "Content-Type" </Directory> +``` + Plus simplement, vous pouvez autoriser les requêtes depuis n'importe quel hôte de la façon suivante, mais cela n'est pas recommandé sur un serveur web autre que local pour des raisons de sécurité : +``` <Directory "..."> - ... - Header set Access-Control-Allow-Origin "*" - Header set Access-Control-Allow-Methods "GET,POST,PUT,DELETE" - Header set Access-Control-Allow-Headers "Content-Type" -</Directory> \ No newline at end of file +... +Header set Access-Control-Allow-Origin "\*" +Header set Access-Control-Allow-Methods "GET,POST,PUT,DELETE" +Header set Access-Control-Allow-Headers "Content-Type" +</Directory> +```