Hola,
Estoy buscando, pero no encuentro la manera de hacerlo. Básicamente, quiero enviar una solicitud GET con un parámetro de matriz como este
GET /comments?filter[post]=3&filter[author]=12
He probado esto
params: {
filter: {post: 3, author: 12}
}
Pero aún así no tuve suerte :(
¿Alguna pista?
Gracias
Hola @ghprod , antes que nada quiero dejar claro que no soy colaborador de esta biblioteca ni la uso, pero estaba pasando y vi este problema y decidí investigar un poco el código.
Axios no admite ese tipo de codificación de forma predeterminada, pero le permite proporcionar un serializador personalizado. Puede lograr esto muy fácilmente con el siguiente código:
// Axios include here...
axios.get('/user', {
params: {
filter: {post: 3, author: 12}
},
paramsSerializer: customSerializerFunc
});
Para hacerlo más simple, busqué en Google un poco las bibliotecas de serializador de cadenas de consulta y encontré qs que tiene soporte para navegadores y nodejs. Puede usarlo como serializador de esta manera:
// Include axios and qs here...
axios.get('/user', {
params: {
filter: {post: 3, author: 12}
},
paramsSerializer: qs.stringify // If this doesnt work, append .bind(qs) to the end of this line.
});
Tal vez vea esto: filter%5Bpost%5D=3
lugar de filter[post]=3
, eso se debe a que la codificación de URL está habilitada. Puede desactivarlo de esta manera:
axios.get('/user', {
params: {
filter: {post: 3, author: 12}
},
paramsSerializer: function(params) {
return qs.stringify(params, { encode: false });
}
});
Avísame si funcionó.
Saludos.
Funciona ...: +1:
Muchas gracias @ngonzalvez
Qué tengas un lindo día :)
hola, necesito ayuda con respecto a axios: ¿cómo obtengo un valor de la entrada y lo pongo como un valor en un parámetro para axios.get? digamos que para una función de búsqueda que estoy construyendo, parte de la URL es un parámetro de consulta.
aquí está el código
axios
.get ('http: // localhost: 8080 / customer / search? hint = da')
donde hint = "searchText"
por favor ayuda.
¡Gracias!
Comentario más útil
Hola @ghprod , antes que nada quiero dejar claro que no soy colaborador de esta biblioteca ni la uso, pero estaba pasando y vi este problema y decidí investigar un poco el código.
Axios no admite ese tipo de codificación de forma predeterminada, pero le permite proporcionar un serializador personalizado. Puede lograr esto muy fácilmente con el siguiente código:
Para hacerlo más simple, busqué en Google un poco las bibliotecas de serializador de cadenas de consulta y encontré qs que tiene soporte para navegadores y nodejs. Puede usarlo como serializador de esta manera:
Tal vez vea esto:
filter%5Bpost%5D=3
lugar defilter[post]=3
, eso se debe a que la codificación de URL está habilitada. Puede desactivarlo de esta manera:Avísame si funcionó.
Saludos.