Angularjs 使用$http.delete从angular发布到aspnetcore api时出现不支持的媒体类型错误
在发布到aspnetcore api时,我得到一个415 http错误结果。 如果我的端点标记为[HttpPost]而不是[HttpDelete],则不会发生这种情况 在aspnetcore api控制器中:Angularjs 使用$http.delete从angular发布到aspnetcore api时出现不支持的媒体类型错误,angularjs,asp.net-core,Angularjs,Asp.net Core,在发布到aspnetcore api时,我得到一个415 http错误结果。 如果我的端点标记为[HttpPost]而不是[HttpDelete],则不会发生这种情况 在aspnetcore api控制器中: [HttpDelete] public async Task<IActionResult> Delete([FromBody]EntityViewModel vm) { var obj = new Object(); obj.atr1 = 1; obj.atr2 = 2
[HttpDelete]
public async Task<IActionResult> Delete([FromBody]EntityViewModel vm)
{
var obj = new Object();
obj.atr1 = 1;
obj.atr2 = 2 ;
$http.post(route, obj)
.then(function (response) {
EntityViewModel.cs
public class EntityViewModel
{
public int Atr1 { get; set; }
public int Atr2 { get; set; }
}
先看了你的问题,我有点困惑 为什么使用
$http.post
发出删除请求?为什么$http.delete
不用于此目的?然后我阅读了更多关于AngularJS$http.delete
的内容,发现无法向服务器发送正文。然后我问自己,为什么你可以发送一个删除请求的机构。这里有一个很好的问题:-规范允许删除带有主体数据的请求
长话短说
ASP.NET Core可以使用正文中发送的JSON数据处理删除请求。因此控制器部分是有效的
[HttpDelete]
public async Task<IActionResult> Delete([FromBody]EntityViewModel vm)
{
yout API route需要什么样的数据类型?@SterlingArcher用EntityViewModel类更新了这个问题。我的问题是因为我的aspnet核心方法中有
[FromBody]
属性。我一把拿出来就没事了。
var obj = new Object();
obj.atr1 = 1;
obj.atr2 = 2 ;
$http(
{
method: 'DELETE',
url: route,
headers: {
'Content-Type': 'application/json'
},
data: obj
}
).then(function (response) {