11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour a tous... je suis actuellement entrain d'utiliser VueJS dans un projet et j'aimerais consommé une api (faite en php) avec axios.
Le problème est que lorsque j'effectue une requete POST j'ai une erreur CORS mais si je fais une requête GET tous fonctionne..
Par ailleurs, si je fais une requete ajax (POST ou GET) tous foctionne normalement.

sur l'api, j'ai un truc comme sa:

header('Access-Control-Allow-Origin: *');
echo json_encode([
    'success' => true,
    'message' => 'Tout est ok',
    'results' => [1, 2, 3]
]);
exit;


Côté JS j'ai un truc comme ça

axios.post('http://ws.mvc.local/login', {
    login: 'login',
    pwd: 'password'
}).then((response) => {
    console.log(response)
}).catch((error) => {
    console.log(error)
})


Je n'utilise pas nodejs pour travailler donc je charge VueJS et axios via les CDN et l'api.
l'api que je souhaite consommer est sur un projet en locale et j'ai configuré un VirtualHost

Ce que je ne comprends pas c'est pourquoi en ajax (via jquery) tout marche mais avec axios j'ai une erreur << Access to XMLHttpRequest at 'http://ws.mvc.local/login' from origin 'http://mvc.local' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. >>
Modérateur
Et l'eau,

C'est juste un test à faire : As tu essayé avec un autre outil (genre jquery ajax) ?

Ton code back me parait valable. Après Axios, je connais pas trop vu que j'ai toujours utilisé le standard (fetch par exemple)

edit : Je viens de m'apercevoir de ton code front. C'est du CURL qu'il va falloir faire. C'est à dire à partir du serveur qui héberge ton formulaire, tu fais du CURL si je ne m'abuse.
Modifié par niuxe (30 Jun 2020 - 18:27)
Lorsque j'utilise jQuery tout fonctionne je ne sais donc pas ce qui derange...
En tout cas je vais un peu essayer Fetch pour voir si ca marche