Javascript 无法从React axios post接收Web API HttpPost方法中的数据
我的Web API Post方法在Swagger中运行良好,但当我使用axios从React应用程序发送Post请求时,数据[FromBody]为空。 下面是WebAPI方法Javascript 无法从React axios post接收Web API HttpPost方法中的数据,javascript,reactjs,asp.net-web-api,asp.net-web-api2,Javascript,Reactjs,Asp.net Web Api,Asp.net Web Api2,我的Web API Post方法在Swagger中运行良好,但当我使用axios从React应用程序发送Post请求时,数据[FromBody]为空。 下面是WebAPI方法 [HttpPost] [Route("api/employee/addMany")] public IHttpActionResult Post([FromBody] dynamic data) //my axios request hit this method but data is always
[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();
}
这是Axios post请求代码
export function addEmployees(employees:Employee[]) {
return axios.post(`api/employee/addMany`, { employees });
}
这是请求拦截器,它执行模型密钥Pascalization和字符串化数据
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;
}
)
}
尝试让axios post工作的事项:
数据
或参数
字段
formData
发送
您现在应该可以通过请求获得它了我最近在axios和post上遇到了不少问题,这是一个臭名昭著的问题,请参见此处(还包含一些关于您可以尝试的建议)。您可以先将标题设置为“content type”:“application/json”,然后再尝试附加到数据或参数字段吗?祝您玩得开心,伙计:)您已经300岁了+
headers: {
'content-type': 'application/json',
}
let formData = new FormData()
formdata.append('name', yourJson)
await axios({
method: 'post',
url: '/your/url',
data: formData,
headers: {
'Content-Type': 'multipart/form-data',
},
})