Tôi có bộ điều khiển sau nên chấp nhận tên người dùng và mật khẩu làm trọng tải trong POST. Nếu tôi thay đổi nó để HttpGet nó hoạt động.WebAPI - POST định tuyến thuộc tính không hoạt động với 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;
}
}
Yêu cầu OPTIONS có thể vượt qua nhưng POST không thành công.
OPTIONS tiêu đề:
OPTIONS phản ứng:
POST tiêu đề:
phản ứng
POST:
Bất kỳ ý tưởng những gì tôi đang làm sai?
Tôi sẽ thử ngay lập tức. Nhưng như bạn thấy ở đây trong kịch bản 5 [HttpPost ("my/action1/{param1}/{param2")] nên hoạt động: https://aspnetwebstack.codeplex.com/wikipage?title=Attribute%20routing%20in%20Web% 20API – niklr
Có điều đó sẽ làm việc vì trong trường hợp đó cả hai param1 và param2 đang đến từ URL và không phải là requst cơ thể như trong trường hợp của bạn. – nemesv
Tại sao bạn sử dụng HttpPost sau đó? Làm cho không có ý nghĩa để mee. – niklr