首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在ajax post ASP.NET MVC中包含反伪造令牌

在ajax post ASP.NET MVC中包含反伪造令牌
EN

Stack Overflow用户
提问于 2013-01-23 14:18:36
回答 12查看 196.9K关注 0票数 189

我在使用ajax的AntiForgeryToken时遇到了问题。我使用的是ASP.NET MVC3,我在jQuery Ajax calls and the Html.AntiForgeryToken()中尝试过这个解决方案。使用该解决方案,现在可以传递令牌:

代码语言:javascript
复制
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) {
            ...
        }
    });

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

有什么想法吗?

编辑

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

下面是包含令牌的表单,位于顶部主页:

代码语言:javascript
复制
<form id="__AjaxAntiForgeryForm" action="#" method="post">
    @Html.AntiForgeryToken()
</form>
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14473597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档