Jquery 使用asp.net获取400:删除请求时请求错误

Jquery 使用asp.net获取400:删除请求时请求错误,jquery,asp.net,restapi,Jquery,Asp.net,Restapi,我正在尝试使用帖子ID删除帖子 但是每次我试图删除一个post 400:bad请求时,控制台中就会出现 var deletepost=function(deleteid){ $.ajax({ url:"http://localhost:12091/api/post/"+deleteid, method: "DELETE", header:"Content-Type:appl

我正在尝试使用帖子ID删除帖子 但是每次我试图删除一个post 400:bad请求时,控制台中就会出现

var deletepost=function(deleteid){
    $.ajax({
        
        url:"http://localhost:12091/api/post/"+deleteid,
        method: "DELETE",
        header:"Content-Type:application/json",
        crossdomain: true,
        complete:function(xmlhttp, status){
            if(xmlhttp.status == 200)
            {
                alert("Post Deleted");
            }
            else{
                console.log(xmlhttp.status+":"+xmlhttp.statusText);
                console.log("unsuccessful");
            }
        }
        
    })
}
这是我的控制器中的内容:

    public IHttpActionResult Delete(int id)
    {
        postRepository.Delete(id);
        return StatusCode(HttpStatusCode.NoContent);
    }

编辑:我使用Postman测试了功能。工作正常

您正在使用
DELETE
HTTP谓词发送AJAX请求,因此需要在控制器中的操作中添加
[HttpDelete]
注释。您还需要将
[FromUri]
注释添加到参数中,以便模型绑定器识别并填充它。试试这个:

var deletepost=函数(deleteid){
$.ajax({
url:“http://localhost:12091/api/post/“+deleteid,
方法:“删除”,
标题:“内容类型:application/json”,
完成:函数(xmlhttp,状态){
if(xmlhttp.status==200){
警告(“删除后”);
}否则{
log(xmlhttp.status+“:”+xmlhttp.statusText);
控制台日志(“未成功”);
}
}
})
}
[HttpDelete]
公共IHttpActionResult删除([FromUri]int-id)
{
postRepository.Delete(id);
返回状态码(HttpStatusCode.NoContent);
}

注意AJAX请求中的
crossdomain
属性被删除。它与此逻辑无关。

如果只将
id
传递给控制器,则可以使用
GET
方法instead@LongLuong但是我想删除这个帖子。我不需要“DELETE”方法吗?所以我猜你在控制器中调用你的
DELETE
是错误的。检查