Passei quase o dia inteiro tentando descobrir por que o Axios estava enviando meus dados no formato errado até encontrar este http://stackoverflow.com/questions/31756756/axios-http-client-how-to-construct-http-post- url-com-form-params. A correção é usar o módulo 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);
});
No entanto, sinto que o Axios deve cuidar disso.
Já existem instruções no readme, então deve ter sido bem fácil encontrar a resposta:
https://github.com/mzabriskie/axios#using -applicationx-www-form-urlencoded-format
Se o Axios deve ou não cuidar disso automaticamente não é uma pergunta para eu responder, mas o foco principal da biblioteca é enviar JSON, então ele otimiza para esse caso de uso, eu acho.
Ah, obrigado por esse link. Eu não vi antes.
Você pode usar params
para especificar strings 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
},
Comentários muito úteis
Você pode usar
params
para especificar strings de consulta.