Mi método de publicación de API web funciona bien con Swagger, pero cuando envío una solicitud de publicación desde mi aplicación React con axios, los datos [FromBody] son nulos. Aquí está el método de API web.
[HttpPost]
[Route("api/employee/addMany")]
public IHttpActionResult Post([FromBody] dynamic data) //my axios request hit this method but data is always null. I have tried passing without stringifying
{
Employee[] employees=JObject.Parse(data);
//doing some stuff with employees
return Ok();
}
Y aquí está el código de solicitud de publicación de Axios
export function addEmployees(employees:Employee[]) {
return axios.post(`api/employee/addMany`, { employees });
}
Y aquí está el interceptor de solicitudes, que realiza la pascalización de claves del modelo y la secuenciación de datos.
const pascalizeKeys = (obj:any):any => {
if (Array.isArray(obj)) {
return obj.map(v => pascalizeKeys(v));
} else if (obj !== null && obj.constructor === Object) {
return Object.keys(obj).reduce(
(result, key) => ({
...result,
[String(upperFirst(key))]: pascalizeKeys(obj[key]),
}),
{},
);
}
return obj;
};
export function applyInterceptors(Axios:typeof axios){
Axios.interceptors.request.use((request)=>{
if(request.data){
request.data = JSON.stringify(pascalizeKeys(request.data));
return request;
}
return request;
}
)
}
Cosas para intentar que axios post funcione:
headers: {
'content-type': 'application/json',
}
Intente adjuntar su json al campo data
o params
de la solicitud
Si aún no puede obtener sus datos, envíelos como nuevos formData
en el campo de datos.
let formData = new FormData()
formdata.append('name', yourJson)
await axios({
method: 'post',
url: '/your/url',
data: formData,
headers: {
'Content-Type': 'multipart/form-data',
},
})
y debería obtenerlo con su solicitud ahora
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras