如何在ASP.NET MVC4中执行发送反外键的控制器操作?
我的请求形成如下代码段:
var _antiForeignKey = dojoQuery('input[name="__RequestVerificationToken"]', dojo.byId('#__AjaxAntiForgeryForm'))[0].value;
xhr.post({
url: 'Account/LogOff',
handleAs: 'json',
contentType: 'application/json',
postData: '__RequestVerificationToken=' + _antiForeignKey
});
我收到服务器的错误,其中包含
的html所需的防伪表单字段“__RequestVerificationToken”是 不存在。
消息作为回复。显然,控制器中的动作不会被执行。
我看过这篇文章:jQuery Ajax calls and the Html.AntiForgeryToken(),它回答了我的问题但是使用了jQuery。
答案 0 :(得分:0)
我必须使用之前的代码段执行控制器操作,但修改两个参数'handleAs'
和'contentType'
的值:
var _antiForeignKey = dojoQuery('input[name="__RequestVerificationToken"]', dojo.byId('#__AjaxAntiForgeryForm'))[0].value;
xhr.post({
url: 'Account/LogOff',
handleAs: 'text',
contentType: 'application/x-www-form-urlencoded',
postData: '__RequestVerificationToken=' + _antiForeignKey
});
正如您所看到的,我已经更改了'handleAs'
属性,因为我们没有在响应中处理json数据,而'contentType'
指定我们正在发送其他类型的数据作为请求的参数。