处理完一个POST请求后出现"Method not allowed"错误。

6 浏览
0 Comments

处理完一个POST请求后出现"Method not allowed"错误。

我有一个和主题所说的一样的问题。我对这方面的知识很新,甚至不知道在哪里寻找这个问题。这是我的POST方法:

public class Point
{
    public string x { get; set; }
    public string y { get; set; }
}
[HttpPost]
public IHttpActionResult Post([FromBody] Point point)
{
    // 做一些处理
    return StatusCode(HttpStatusCode.OK);
}

这是我的ajax请求:

var x = $('#input1').val();
var y = $('#input2').val();
$("#btnUpload").click(function () {
    $.ajax({
        type: "POST",
        url: "api/images",
        data: { x: x, y: y },
        success: function (result) { alert(result) },
        error: function (err) { alert(err.statusText) }
    });
});

我有什么遗漏吗?

编辑:我的控制器:

[RoutePrefix("api/images")]
public class ImagesController : ApiController
{
    private Bitmap CreateBoard()
    {
        // 需要一些东西
    }
    [HttpPost]
    public IHttpActionResult Post([FromBody] Point point)
    {
        // 做一些处理
        return StatusCode(HttpStatusCode.OK);
    }
    [Route("")]
    [HttpGet]
    public List Get()
    {
        // 做其他处理
    }
    [Route("{id}")]
    [HttpGet]
    public HttpResponseMessage Get(int id)
    {
        // 做其他其他处理
    }
}

GET方法正常工作。

0
0 Comments

问题的原因是URL应该是`api/images/post`,`RoutePrefix`是`api/images`,所以缺少方法的名称。

解决方法是将URL修改为`api/images/post`。

0