在Ajaxpost ASP.NETMVC中包含防伪造令牌我在Ajax的AntiForgeryToken上遇到了麻烦。我正在使用ASP.NETMVC 3。jQueryAjax调用和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) {
...
}
});当我移除[ValidateAntiForgeryToken]属性来查看数据(带有令牌)是否作为参数传递给控制器,我可以看到它们正在被传递。但出于某种原因A required anti-forgery token was not supplied or was invalid.当我将属性放回时,仍然会弹出消息。有什么想法吗?编辑反伪造令牌是在表单中生成的,但我不使用Submit操作来提交它。相反,我只是使用jQuery获取令牌的值,然后尝试Ajax发布该值。下面是包含令牌的表单,位于顶部母版页:<form id="__AjaxAntiForgeryForm" action="#" method="post">
@Html.AntiForgeryToken()</form>
3 回答
慕丝7291255
TA贡献1859条经验 获得超6个赞
@Html.AntiForgeryToken()
__RequestVerificationToken
<script type="text/javascript">
function gettoken() {
var token = '@Html.AntiForgeryToken()';
token = $(token).val();
return token;
}</script>$.ajax({
type: "POST",
url: "/Account/Login",
data: {
__RequestVerificationToken: gettoken(),
uname: uname,
pass: pass },
dataType: 'json',
contentType: 'application/x-www-form-urlencoded; charset=utf-8',
success: successFu,});[ValidateAntiForgeryToken]
- 3 回答
- 0 关注
- 462 浏览
添加回答
举报
0/150
提交
取消
