Pasé casi todo el día tratando de averiguar por qué Axios enviaba mis datos en el formato incorrecto hasta que encontré este http://stackoverflow.com/questions/31756756/axios-http-client-how-to-construct-http-post- url-con-formulario-parámetros. La solución es usar el módulo de cadena de consulta.
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);
});
Sin embargo, siento que Axios debería encargarse de esto.
Ya hay instrucciones en el archivo Léame, por lo que debería haber sido bastante fácil encontrar la respuesta:
https://github.com/mzabriskie/axios#using-applicationx-www-form-urlencoded-format
Si Axios debería encargarse de esto automáticamente o no, no es una pregunta que yo deba responder, pero el enfoque principal de la biblioteca es enviar JSON, por lo que supongo que se optimiza para ese caso de uso.
Oh, gracias por ese enlace. No lo vi antes.
Puede usar params
para especificar cadenas de consulta.
// `params` are the URL parameters to be sent with the request
// Must be a plain object or a URLSearchParams object
params: {
ID: 12345
},
Comentario más útil
Puede usar
params
para especificar cadenas de consulta.