【发布时间】:2016-03-30 10:09:32
【问题描述】:
当我调用包含没有参数的 post 方法的 webAPI 控制器时,它会转到该方法。但是,当我将参数(以及当我使用参数更新 api 控制器时)传递到此时,请参阅第一个 sn-p 下方的 sn-p,我得到它不支持 POST 的 405 错误。
var captchURL = "/api/Captcha";
$.ajax({
url: captchURL,
dataType: 'json',
contentType: 'application/json',
type: 'POST'
})
var jsondata = {solution: "7", answer: "7"};
var captchURL = "/api/Captcha";
$.ajax({
url: captchURL,
dataType: 'json',
contentType: 'application/json',
type: 'POST',
data: JSON.stringify(jsondata)
})
更新 - 控制器代码:
public class CaptchaController : ApiController
{
private readonly ICaptchaService _service;
public CaptchaController(ICaptchaService service)
{
_service = service;
}
public Captcha Get()
{
return _service.Get();
}
[HttpPost]
public bool Post(string solution, string answer)
{
return _service.Post();
}
}
更新 - WebApiConfig:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
是否因为我没有解决方案和答案参数(在我的 WebApiConfig 中)它无法识别它们?
我做错了什么?
【问题讨论】:
-
控制器的邮政编码
-
@jpgrassi - 我更新了控制器代码 - 我还刚刚将参数添加到 Post 方法中
-
@webdad3 你为什么要把数据串起来我认为你不应该
data: jsondata就够了 -
@meda - 尝试了两种方法,得到了同样的错误。
-
您是否检查了控制台以查看是否记录了任何错误?
标签: c# ajax post asp.net-web-api