パラメータなしのポストメソッドを含むwebAPIコントローラを呼び出すと、メソッドに移動します。しかし、私がパラメータを渡すと(そして、パラメータコントローラでapiコントローラを更新しても)、これは第1のスニペットの下にあるスニペットを参照してください。これはPOSTエラーを405エラーにします。パラメータ付きWebAPIポストメソッドが機能しません
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)
})
UPDATE - コントローラコード:
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();
}
}
UPDATE - WebApiConfig:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
私は解決策や答えのparamsを持っていないので、それは(私の中WebApiConfig)は認識できませんか?
私は間違って何をしていますか?
コントローラのポストコード – jpgrassi
コントローラコードで更新しました - 私はちょうどPostメソッドにパラメータを追加しました – webdad3
@ webdad3なぜデータをストリング化したのですか?あなたは 'data:jsondata'で十分ではないと思います – meda