相关疑难解决方法(0)

在ASP.NET MVC的ajax中包含antiforgerytoken

我在使用ajax的AntiForgeryToken遇到了麻烦.我正在使用ASP.NET MVC 3.我在jQuery Ajax调用和Html.AntiForgeryToken()中尝试了解决方案.使用该解决方案,现在正在传递令牌:

var data = { ... } // with token, key is '__RequestVerificationToken'

$.ajax({
        type: "POST",
        data: data,
        datatype: "json",
        traditional: true,
        contentType: "application/json; charset=utf-8",
        url: myURL,
        success: function (response) {
            ...
        },
        error: function (response) {
            ...
        }
    });
Run Code Online (Sandbox Code Playgroud)

当我删除[ValidateAntiForgeryToken]属性只是为了查看数据(带有令牌)是否作为参数传递给控制器​​时,我可以看到它们正在被传递.但由于某种原因,A required anti-forgery token was not supplied or was invalid.当我放回属性时,消息仍会弹出.

有任何想法吗?

编辑

antiforgerytoken是在表单中生成的,但我没有使用提交操作来提交它.相反,我只是使用jquery获取令牌的值,然后尝试ajax发布.

这是包含令牌的表单,位于顶部母版页:

<form id="__AjaxAntiForgeryForm" action="#" method="post">
    @Html.AntiForgeryToken()
</form>
Run Code Online (Sandbox Code Playgroud)

asp.net ajax asp.net-mvc csrf asp.net-mvc-3

152
推荐指数
6
解决办法
14万
查看次数

标签 统计

ajax ×1

asp.net ×1

asp.net-mvc ×1

asp.net-mvc-3 ×1

csrf ×1