J'ai passé presque toute la journée à essayer de comprendre pourquoi Axios envoyait mes données dans le mauvais format jusqu'à ce que je trouve ce http://stackoverflow.com/questions/31756756/axios-http-client-how-to-construct-http-post- url-avec-form-params. Le correctif consiste à utiliser le module querystring.
axios.post(
'/api/v1/auth/login',
querystring.stringify({ // <-- this is what fixed it. JSON.stringify didn't help here
user_id: this.state.user_id,
password: this.state.password,
_csrf: result.data.csrfToken
}),
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.then((res) => {
if (res.data && res.data) {
console.log('here')
}
})
.catch((err) => {
console.log(err);
});
Cependant, je pense qu'Axios devrait s'en occuper.
Il y a déjà des instructions dans le fichier readme, il aurait donc dû être assez facile de trouver la réponse :
https://github.com/mzabriskie/axios#using-applicationx-www-form-urlencoded-format
Que Axios doive ou non s'occuper automatiquement de cela n'est pas une question à laquelle je dois répondre, mais l'objectif principal de la bibliothèque est d'envoyer JSON, donc il optimise pour ce cas d'utilisation, je suppose.
Oh, merci pour ce lien. Je ne l'ai pas vu avant.
Vous pouvez utiliser params
pour spécifier les chaînes de requête.
// `params` are the URL parameters to be sent with the request
// Must be a plain object or a URLSearchParams object
params: {
ID: 12345
},
Commentaire le plus utile
Vous pouvez utiliser
params
pour spécifier les chaînes de requête.