Axios: ¿Por qué tenemos que usar el módulo de cadena de consulta?

Creado en 4 mar. 2017  ·  3Comentarios  ·  Fuente: axios/axios

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.

Comentario más útil

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
  },

Todos 3 comentarios

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
  },
¿Fue útil esta página
0 / 5 - 0 calificaciones