我正在使用 WEB API 2 构建一个 API。
我有以下 API 控制器:
[RoutePrefix("api/account")]
public class AccountController : ApiController
{
[Route("login")]
[HttpPost]
public IHttpActionResult AuthenticateUser(string username, string password)
{
if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
{
return BadRequest("You must submit username and password");
}
if (!Membership.ValidateUser(username, password))
{
return BadRequest("Incorrect username or password");
}
FormsAuthentication.SetAuthCookie(username, true);
return Ok();
}
}
和jquery函数:
<script>
$(document).ready(function () {
$("#login-form").submit(function (e) {
e.preventDefault();
var username = $('#username').val();
var password = $('#password').val();
$.ajax({
type: 'POST',
url: '/api/account/Login/',
data: { username: username, password: password },
success: function() {
location.reload();
}
});
});
});
</script>
当我提交登录表单时,我在 Google Chrome 的控制台中收到以下错误:
POST http://localhost:60898/api/account/Login/ 404 (Not Found)
如何创建接受 HTTP POST 的路由?
Thanks!
抱歉,我没有看到这篇文章:WebAPI - 属性路由 POST 不适用于 WebAPI Cors?
我已经像这样更新了我的 API 控制器:
[RoutePrefix("api/account")]
public class AccountController : ApiController
{
public class LoginInfo
{
public string username { get; set; }
public string password { get; set; }
}
[Route("login")]
[HttpPost]
public IHttpActionResult AuthenticateUser(LoginInfo loginInfo)
{
if (string.IsNullOrEmpty(loginInfo.username) || string.IsNullOrEmpty(loginInfo.password))
{
return BadRequest("You must submit username and password");
}
if (!Membership.ValidateUser(loginInfo.username, loginInfo.password))
{
return BadRequest("Incorrect username or password");
}
FormsAuthentication.SetAuthCookie(loginInfo.username, true);
return Ok();
}
}
现在一切正常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)