Web API路由和http发布 [英] web api routing and http post
本文介绍了Web API路由和http发布的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用WEB API 2构建API。
I'm building an API using WEB API 2.
我具有以下API控制器:
I have the following API controller:
[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浏览器的控制台中出现以下错误:
When I submit the login-form, I get the following error in Google Chrome's console:
POST http://localhost:60898/api/account/Login/ 404 (Not Found)
我如何创建接受HTTP POST的路由?
How can I create a route that accepts HTTP POST?
谢谢!
推荐答案
对不起,我没有看到此帖子: WebAPI-属性路由POST无法与WebAPI Cors配合使用?
I'm sorry, I didn't see this post: WebAPI - Attribute Routing POST not working with WebAPI Cors?
我已经这样更新了我的API控制器:
I've updated my API controller like this:
[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();
}
}
现在一切正常。
这篇关于Web API路由和http发布的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文