【发布时间】:2016-05-30 08:12:00
【问题描述】:
我正在尝试从 Angular 客户端调用 MVC 控制器(例如登录)中的异步方法,但调用失败。我也用谷歌邮递员工具试过。
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
}
这是调用 Login 方法的 Angular 服务的 sn-p
var loginUser = function (email, password, returnUrl) {
var req = {
method: 'post',
url: '/Mysite/Login',
headers: {
'Content-Yype': undefined
},
data: {
model: {
Email: email,
Password: password,
RememberMe: false
},
returnUrl: returnUrl
}
};
return $http(req)
.then(function (response) {
return response.data;
}, function (reason) {
return reason;
});
};
响应向我抛出状态 500 的内部错误。
angular.js 是否支持对 web 方法的异步调用?
感谢您的帮助
【问题讨论】:
-
动作用 [ValidateAntiForgeryToken] 修饰,你是否通过数据传递请求验证令牌?
标签: angularjs model-view-controller asynchronous controller