烧成我有一个jquery函数:MVC Ajax调用不与ValidateAntiForgeryToken
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函数被调用(我测试警报),但操作方法未被调用。我尝试了成功和错误功能,但没有效果。
我也给jQuery函数这样
function ExpireSession() {
var url = '@Url.Action("LogOffSession", "Account")';
$.post(url, null, function (data) {
return true;
});
但它仍然是行不通的尝试。
这是什么我做错了?
你的方法用'[ValidateAntiForgeryToken]'装饰,但你不传递该标记,所以该方法永远不会运行。 –
@StephenMuecke是正确的。您可以通过在控制台中检查请求的结果来诊断像这样的问题。在这种情况下,您很可能会看到500错误。 –
是的你是对的。从action方法中移除ValidateAntiForgeryToken可以完成这项工作...... – nitinvertigo