Ich habe den folgenden Controller, der Benutzername und Passwort als Payload in einem POST akzeptieren sollte. Wenn ich es in HttpGet ändere, funktioniert es.WebAPI - Attribut-Routing POST funktioniert nicht mit WebAPI Cors?
[RoutePrefix("api")]
public class AccountController : ApiController
{
[HttpPost("login/{username}/{password}")]
[AcceptVerbs("POST")]
public Login Login(string username, string password)
{
Login login = new Login();
if (username == "user" && password == "pw") login.Success = true;
else login.Success = false;
return login;
}
}
Die OPTIONS-Anforderung kann übergeben werden, aber POST schlägt fehl.
OPTIONS header:
Antwort OPTIONEN:
Header POST:
POST Antwort:
Jede Idee, was mache ich falsch?
Ich werde das sofort versuchen. Aber wie Sie hier in Szenario 5 sehen, sollte [HttpPost ("my/action1/{param1}/{param2")] funktionieren: https://aspnetwebstack.codeplex.com/wikipage?title=Attribute%20routing%20in%20Web% 20API – niklr
Ja, das sollte funktionieren, denn in diesem Fall kommen sowohl param1 als auch param2 von der URL und NICHT vom Körper der Anfrage wie in Ihrem Fall. – nemesv
Warum würden Sie dann HttpPost verwenden? Macht keinen Sinn für mich. – niklr