我有两个方法httpGet和httpPost里面的动作登录。
当ajax调用时,它只能使用Login httpGet。
我希望它使用方法登录httpPost。
...谢谢你的回答!
这是我的代码javascript
$(document).ready(function () {
$(".SignIn").delegate(".btnSignIn", "click", function () {
var UserName = $("#UserName").val();
var Password = $("#Password").val();
$.ajax({
type: "post",
url: "/Account/Login",
data: { UserName: UserName, Password: Password },
})
.done(function (message) {
if (message != null && message != "") {
alert(message);
}
else {
alert('not working');
}
});
return false;
});
});
这是使用成员资格的帐户控制器中的两种方法
//
// GET: /Account/Login
[HttpGet]
[AllowAnonymous]
public PartialViewResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return PartialView();
}
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
return Json("aaaa");
}
答案 0 :(得分:1)
你的post方法是用[ValidateAntiForgeryToken]
属性修饰的,所以它期望在请求中使用,但是你没有在ajax方法中传递它。确保您的表单包含@Html.AntiForgeryToken()
并将以下内容添加到ajax数据
__RequestVerificationToken: $('input[name="__RequestVerificationToken"]').val(),