代码之家  ›  专栏  ›  技术社区  ›  christiansr85

通过Dojo在MVC5中发送AntiForeignKey来执行控制器操作

  •  0
  • christiansr85  · 技术社区  · 12 年前

    如何在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 
    });
    

    我从服务器收到一个错误,其中包含

    所需的防伪表单字段“__RequestVerificationToken”为 不存在。

    消息作为响应。显然,控制器中的动作没有执行。

    我看过这篇文章: jQuery Ajax calls and the Html.AntiForgeryToken() ,它回答了我的问题,但使用了jQuery。

    1 回复  |  直到 9 年前
        1
  •  0
  •   christiansr85    12 年前

    我必须使用前面的代码片段执行控制器操作,但修改两个参数的值, '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        
    });
    

    如你所见,我改变了 '句柄As' 属性,因为我们没有在响应中处理json数据 '内容类型' 为了指定,我们将发送其他类型的数据作为请求的参数。

    推荐文章