【发布时间】:2015-10-09 08:06:56
【问题描述】:
我有一个 jquery 函数:
function ExpireSession() {
$.ajax({
type: "POST",
url: '@Url.Action("LogOffSession","Account")',
dataType: "json",
success: function (data) {
},
error: function (data) {
}
});
}
上述函数调用的动作方法是:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LogOffSession()
{
Session.Abandon();
FormsAuthentication.SignOut();
return Json(new { result = true });
}
调用了 jquery 函数(我用警报进行了测试),但没有调用 action 方法。我尝试在成功和错误函数中给出一些东西,但没有效果。
我也尝试过这样的 jquery 函数
function ExpireSession() {
var url = '@Url.Action("LogOffSession", "Account")';
$.post(url, null, function (data) {
return true;
});
但它仍然无法正常工作。
我做错了什么?
【问题讨论】:
-
您的方法用
[ValidateAntiForgeryToken]装饰,但您没有传递令牌,因此该方法永远不会运行。 -
@StephenMuecke 是正确的。您可以通过在控制台中检查请求的结果来诊断此类问题。在这种情况下,您很可能会看到 500 错误。
-
是的,你是对的。从操作方法中删除 ValidateAntiForgeryToken 就可以完成这项工作...
标签: jquery ajax asp.net-mvc