abouzouzou Posted January 25, 2021 Share Posted January 25, 2021 (edited) Bonjour, je suis en train de developpé des appels REST vers le webservice. Lord de GET tout se passe bien, mais lors de POST ou PUT voici mes erreurs : Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. j'ai ajouté des header dans le dispatcher.php et dans HTACCESS pour les options mais rien. Vous avez une idée ? Edited January 26, 2021 by abouzouzou changer la question (see edit history) Link to comment Share on other sites More sharing options...
abouzouzou Posted January 25, 2021 Author Share Posted January 25, 2021 (edited) 20 hours ago, abouzouzou said: Bonjour, je suis en train de développé un dashboard avec le framework vuejs3 qui se connecte sur l'api rest de prestashop, je recupère bien mes commandes, le detail les status etc... puis j'essaie d'updater le status d'une commande avec axios et en JSON mais j'ai une erreur bizarre de preflight. Est-ce possible de mettre à jour une commande ? si oui suffit-il juste de la récupérer puis de mettre à jour notre donnée et de renvoyé le tout dans un post ? put ? merci Déjà de bases les webservices on ne peut ajouter ou modifier des objets seulement en XML (pas top) Edited January 26, 2021 by abouzouzou (see edit history) Link to comment Share on other sites More sharing options...
Nouhail AL FIDI Posted December 14, 2021 Share Posted December 14, 2021 (edited) Bonjour, En JS, quand l'API Fetch ou Axios sont utilisés, ils envoient toujours une requête avec la méthode "OPTIONS" qui correspond à une sorte d'ACK (Acknowledgement) pour voir s'ils ont le droit d'effectuer des requêtes en utilisant d'autres méthodes comme GET ou POST. En plus de la modification des headers dans le fichier /webservice/dispatcher.php il faudra également retourner une réponse en 200 quand une requête de preflight avec la méthode "OPTIONS" est envoyée, ceci n'est pas géré par défaut par Prestashop. Voici une proposition d'un bout de code (avec modification des headers inclus) à ajouter dans le fichier /webservice/dispatcher.php pour que ça marche : // Modification des headers pour les méthodes header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Headers: Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, Content-Type, Authorization'); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT'); // Retour OK si la méthode est en preflight if ($_SERVER['REQUEST_METHOD'] === "OPTIONS") { return http_response_code(200); } Attention, la valeur * pour le paramètre "Access-Control-Allow-Origin" doit absolument être changé avant le déploiement en production vu ce n'est pas une pratique sécurisée. Réponse inspirée de ce thread : https://stackoverflow.com/questions/53298478/has-been-blocked-by-cors-policy-response-to-preflight-request-doesn-t-pass-acce Edited December 14, 2021 by Nouhail AL FIDI (see edit history) Link to comment Share on other sites More sharing options...
abouzouzou Posted December 18, 2021 Author Share Posted December 18, 2021 oui ce changement est connu , merci ^^ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now