【发布时间】:2016-04-14 17:02:45
【问题描述】:
我在应用程序的服务器端使用 microsoft asp.net mvc,在客户端使用 jquery。 在我的应用程序中,当加载特定页面时,我需要做一些事情。我需要向服务器端发送请求并做一些事情。因为我在客户端执行此操作,所以每个用户都可以看到我的请求,我想确保发出请求的用户不是请求特定页面的用户。到目前为止,我使用了请求伪造令牌,但在过去的一个月里,我跟踪了我的应用程序面临的异常和错误,我看到所需的防伪造 cookie“myCookieName”不存在。首先是否有人可以告诉我这是我的错误,其次是否有人可以提出另一种解决方案。
这是我的html代码:
@using (Html.BeginForm("action", "controller", FormMethod.Post, new { id = "myForm" }))
{
@Html.AntiForgeryToken()
@Html.HiddenFor(m=>m.Id)
}
这是我的 java 脚本代码:
(function() {
$(function() {
var $form = $("#myForm");
$form.ajaxSubmit({
success: function () {
$form.remove();
},
error: function() {
$form.remove();
}
});
});
}());
这是我的 MVC 代码:
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult Action(int id)
{
//Do stuff
}
【问题讨论】:
标签: jquery ajax asp.net-mvc csrf antiforgerytoken