Javascript 将整数列表发送到REST API抛出415(不支持的媒体类型)
我正在试验reactjs和.net核心web api,并尝试将简单的整数列表发送到rest api。通过postman,我做到了这一点,没有任何问题,但当我尝试从react js代码中执行此操作时,控制台中出现了415个错误: 这是我在API上的方法的外观:Javascript 将整数列表发送到REST API抛出415(不支持的媒体类型),javascript,c#,reactjs,asp.net-web-api,.net-core,Javascript,C#,Reactjs,Asp.net Web Api,.net Core,我正在试验reactjs和.net核心web api,并尝试将简单的整数列表发送到rest api。通过postman,我做到了这一点,没有任何问题,但当我尝试从react js代码中执行此操作时,控制台中出现了415个错误: 这是我在API上的方法的外观: // DELETE api/SiteUsers/delete [HttpPost("delete")] public async Task<ActionResult> DeleteSiteU
// DELETE api/SiteUsers/delete
[HttpPost("delete")]
public async Task<ActionResult> DeleteSiteUsers(DeleteValuesDto deleteValues, CancellationToken cancellationToken)
{
return NoContent();
}
这是我在前端的deleteSiteUser
方法:
export const deleteSiteUser = (deleteValues) => {
console.log('deleteValues', deleteValues);
return axiosWrapper.request({
url: `/SiteUsers/delete`,
method: 'POST',
deleteValues,
});
};
以下是控制台日志的结果:
我原以为这会很简单,但我发现事实并非如此://您将ID包装在一个对象中,该对象具有
值
字段,但您的端点需要一个普通数组
不要像对待deleteValues
那样包装selectedRows
,只需直接传递它即可
const handleDelete = async () => {
await deleteSiteUser(selectedRows);
};
您需要按照文档()发送命名的
数据属性中的数据
如果未设置数据属性,则有效负载为空。最可能的结果是,Conent-Type
头未设置,因此Asp.Net无法决定如何解析请求主体,然后抛出该错误。您只需在Chrome的开发者控制台中检查,然后设置数据
属性,并检查该请求的内容类型标题。是否将此作为表单数据发布?@Marco No。。我只是将其作为一个经典的post请求发送,而不是将其添加到formI中。我只能想象,这与您的axios请求有关。尝试将其设置为data
:axioswapper.request({url:
/SiteUsers/delete,方法:'POST',数据:deleteValues,})代码>根据文档:@Marco,没错,伙计!我只是红了它!但是谢谢你的帮助。所以你可以写一个带点解释的答案,这样我就可以接受了!谢谢你的帮助。我的端点只需要一个deleteValues,它是一个对象,里面是一个数组?所以,您建议的这个更改也要求我修改API端点?对吗?对不起,我错了,我误解了这个问题。但是,您可能需要大写值
?但我不确定。我已经尝试在前端和其他一些东西上利用“价值观”,但它不起作用,我不确定为什么:(
const handleDelete = async () => {
await deleteSiteUser(selectedRows);
};
export const deleteSiteUser = (deleteValues) => {
console.log('deleteValues', deleteValues);
return axiosWrapper.request({
url: '/SiteUsers/delete',
method: 'POST',
data: deleteValues,
});
};