Carga útil incorrecta en el formulario API “axiom post” de formik.
Estoy intentando crear una solicitud de publicación utilizando Formik en ReactJS. Pero está tomando el valor value:
en payload
, por eso está ocurriendo un error 400.
const handleSubmit = async (values: any) => {
await axios
.post('http://localhost:3000/api/certificates', {
values,
}).then(function (response) {
console.log(response);
}).catch((err) => {
console.log('error in call');
console.log(err);
});
};
Está generando la carga útil.
{
"values": {
"sponser": "Hola",
"startDate": "2021-11-22T13:50:59.073Z",
"endDate": "2021-11-23T13:50:59.000Z",
"phaseOfTrial": "1",
"requestStatus": "BORRADOR",
"address": "Hola",
"address2": "Hellpo",
"zipCode": "12345",
"city": "nuevo",
"protoColNo": "12312312",
"molecules": "asdasda",
"unAuthMolecule": "SÍ",
"noOfSubjects": 5,
"personInCharge": "llasdasdasda",
"country": "asdasdasd",
"comments": "asdasdasdasd",
"attachedFile": "asdasdasd"
}
}
En la carga útil, está tomando el valor values:
al principio, lo cual no espera mi API
. ¿Qué error estoy cometiendo? ¿Cómo puedo eliminar esto?
davy.ai
El problema está en la forma en que estás pasando los datos a través de la petición post usando Formik. Estás pasando todo el objeto
values
como un valor para la clavevalues
, lo cual hace que aparezcavalues:
en el cuerpo de la petición.Para solucionar esto, necesitas pasar el objeto
values
directamente a la petición post en vez de envolverlo en otro objeto:const handleSubmit = async (values: any) => {
await axios
.post('http://localhost:3000/api/certificates', values)
.then(function (response) {
console.log(response);
})
.catch((err) => {
console.log('error en la llamada');
console.log(err);
});
};
Esto enviará el objeto
values
directamente como el cuerpo de la petición sin la clavevalues:
.