【发布时间】:2017-07-26 03:15:54
【问题描述】:
我有这个 AJAX 调用:
let errorModel = {
exception: exception,
extraMessage: extraMessage,
time: Date.now()
}
$.ajax({
url: "/api/error/LogError",
type: "POST",
data: errorModel
});
这个控制器中的这个 web api 2 方法
[RoutePrefix("api/Error")]
public class ErrorController : ApiController
{
[HttpPost]
[Route("LogError")]
public IHttpActionResult LogError([FromBody]ErrorModel errorModel)
{
try
{
_db.ErrorModels.Add(errorModel);
_db.SaveChanges();
return Created(new Uri(Request.RequestUri + "/" + errorModel.Id), errorModel);
}
catch (Exception e)
{
return BadRequest(e.Message);
}
}
}
但是当我的代码到达 ajax 调用时,我收到如下错误消息:
{
"message": "The requested resource does not support http method 'GET'."
}
我在这里做错了什么?我有很多这样的 api 调用,它们都可以工作。
【问题讨论】:
-
某处正在发送 GET。也许有一个表格,你没有阻止默认提交,或者什么?显然你发布的代码是不负责任的,但其他的是。
-
我投票结束这个问题,因为它是由代码中不相关的问题引起的(请参阅自我回答)。
-
type是错误的字段 IIRC。无论如何,你可以使用$.post
标签: c# jquery ajax asp.net-web-api2