Tidak dapat menerima data dalam metode Web API HttpPost dari posting React axios
Sep 25 2020
Metode Post API Web saya berfungsi dengan baik dengan Swagger, tetapi ketika saya mengirim permintaan posting dari Aplikasi React saya dengan axios, data [FromBody] adalah null. Berikut adalah metode 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();
}
Dan berikut adalah kode permintaan pos Axios
export function addEmployees(employees:Employee[]) {
return axios.post(`api/employee/addMany`, { employees });
}
Dan di sini adalah interseptor permintaan, melakukan Pascalization dan Stringifying data Model Keys.
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;
}
)
}
Jawaban
1 Slim Sep 25 2020 at 08:35
Hal-hal untuk mencoba agar axios post bekerja:
- Setel tajuk
headers: {
'content-type': 'application/json',
}
Coba lampirkan json Anda ke bidang
dataatauparamspermintaanJika Anda masih tidak bisa mendapatkan data Anda, kirimkan sebagai yang baru
formDatadi bidang data
let formData = new FormData()
formdata.append('name', yourJson)
await axios({
method: 'post',
url: '/your/url',
data: formData,
headers: {
'Content-Type': 'multipart/form-data',
},
})
dan Anda harus mendapatkannya dengan permintaan Anda sekarang
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'