Partage
  • Partager sur Facebook
  • Partager sur Twitter

CORS: Allow-Methods ne fonctionne pas

Exécute l'endpoint même avec une méthode non autorisée

10 mars 2023 à 11:44:18

Bonjour,

Je viens vers vous car après avoir épuisé les premières pages de résultats de Google au sujet des CORS "Access-Control-Allow-Methods" largement masqué par tous les sujets à propos de "..Allow-Origin".

Je n'explique pas pourquoi, malgré le fait que mon endpoint a les headers suivants :

header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Allow-Headers: Access-Control-Allow-Headers, Content-type, Access-Control-Allow-Methods");

Lorsque j'exécute mon appel Ajax à cet endpoint, je reçois ceci:

Ma requête est bien `DELETE` (Qui ne fait pas parti des dites "simple requests" qui n'appellent pas aux "preflight-requests") et la méthode autorisée par mon endpoint est bien `POST`, et malgré tout, l'enpoint renvoi un résultat au lieu de me renvoyer une erreur CORS.

Je suis en localhost sur serveur WAMP si toutefois cela est pertinent, et j'ai une extension pour byPass les restrictions CORS qui est bien désactivée.

Quelqu'un saurait m'éclairer à ce sujet ?

Merci d'avance !!

Cordialement.

-
Edité par Believe094 10 mars 2023 à 12:04:43

  • Partager sur Facebook
  • Partager sur Twitter
15 mars 2023 à 15:08:20

il faudrait développer les réponses (on voit que data semble détenir des données, peut-être utiles)

Pourquoi penses-tu que le problème vient de des CORS alors tu n'as pas ce type d'erreur ? 
L'erreur étant de type Bad Request, c'est que la requête n'est pas conforme à ce qui est attendu par l'api (paramètres manquants, nom de paramètres incorrects, ....)

  • Partager sur Facebook
  • Partager sur Twitter
18 mars 2023 à 16:36:03

Le format de la réponse est 100% custom.

La réception de l'erreur 400 est dû au fait que l'API ne peut pas créer le compte car l'addresse email existe déjà. C'est moi qui ai choisi ce code d'erreur et le contenu de "data" est la réponse que je renvoi au front, c'est à dire "title", "message" et "code".

Voici le contenu de "data" pour illustrer ce que je dis:

Je reçois donc une réponse renvoyé par mon endpoint après exécution du coup, alors qu'il ne devrait pas l'accepter si je comprends bien parce que le CORS autorise uniquement la méthode "POST" et je lui envoi un "DELETE".

  • Partager sur Facebook
  • Partager sur Twitter
20 mars 2023 à 11:01:53

Le fait de ne pas pouvoir accepter la requête DELETE est aussi une erreur 400 (Bad Request) il faudrait donc personnaliser le message dans le cas où la méthode est DELETE
  • Partager sur Facebook
  • Partager sur Twitter