Estoy tratando de publicar en una API con algunos parámetros de consulta. Esto funciona en PostMan / Insomnia cuando intento pasar el correo y el nombre como parámetros de consulta:
http://localhost:8000/api/mails/users/sendVerificationMail?mail=lol%40lol.com&firstname=myFirstNameSin embargo, cuando intento hacerlo con mi aplicación nativa de reacción, aparece un error 400 (Parámetros de consulta no válidos).
Este es el método de publicación:
.post(`/mails/users/sendVerificationMail`, { mail, firstname }) .then(response => response.status) .catch(err => console.warn(err)); (mi correo y mi nombre son console.registrados de la siguiente manera: lol@lol.com y myFirstName ).
Entonces, no sé cómo pasar los parámetros de consulta con Axios en mi solicitud (porque ahora mismo, está pasando data: { mail: "lol@lol.com", firstname: "myFirstName" } .
La firma de axios para la publicación es axios.post(url[, data[, config]]) . Entonces desea enviar el objeto params dentro del tercer argumento:
.post(`/mails/users/sendVerificationMail`, null, { params: { mail, firstname }}) .then(response => response.status) .catch(err => console.warn(err));Esto publicará un cuerpo vacío con los dos parámetros de consulta:
POST http://localhost:8000/api/mails/users/sendVerificationMail?mail=lol%40lol.com&firstname=myFirstName
¡A partir de 2021, en lugar de nulo, tuve que agregar {} para que funcionara!
axios.post( url, {}, { params: { key, checksum } } ) .then(response => { return success(response); }) .catch(error => { return fail(error); });En mi caso, la API respondió con un error CORS. En su lugar, formateé los parámetros de consulta en una cadena de consulta. Publicó datos con éxito y también evitó el problema de CORS.
var data = {}; const params = new URLSearchParams({ contact: this.ContactPerson, phoneNumber: this.PhoneNumber, email: this.Email }).toString(); const url = "https://test.com/api/UpdateProfile?" + params; axios .post(url, data, { headers: { aaid: this.ID, token: this.Token } }) .then(res => { this.Info = JSON.parse(res.data); }) .catch(err => { console.log(err); });