Bonjour
J’ai besoin d’une petite aide SVP.
Quand je fait une req Ajax, si mon statut code de la réponse est bien 200 : quand je regardes Response Headers (via mon inspecteur Chrome), j’ai bien mes headers Access-Control.
Mais le problème c’est que quand je fait une req Ajax, si mon statut code de la réponse est 422 (ou 400) : quand je regardes Response Headers (via mon inspecteur Chrome), mes headers Access-Control sont absent. Pourquoi ?
Ceci m’est problématique surtout si je veux que me servir de mon Web App PHP en tant qu’API. Je travail avec Laravel, mais ce problème n’est pas dur à Laravel mais bien à Nginx (je viens de tester le même comportement avec un site web PHP que j’ai fais sans FrameWork).
Voici un exemple de Vhost que j’utilise :
server {
listen 80;
server_name www.domain-test.local;
root /path-sur-mon-pc/public/;
index index.php index.html index.htm;
#### CORS
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, OPTIONS, DELETE';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' '*';
#### Locations
# On interdit les dotfiles
location ~ /\. {
deny all;
}
# Lorsque l'on arrive sur le site
location / {
# Ré-écriture d'URL (pour architecture MVC)
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}
Une idée SVP ?
Il me semble qu’avec Nginx que ce soit normal, car les headers sont utiles que pour les codes de réponse, qui sont égaux à 200, 201, 204, 206, 301, 302, 303, 304, ou 307.
Mais pour ne pas avoir des problèmes de cors, j’ai besoin de ces headers même quand je retourne des erreurs 422.
Merci d’avance.