【问题标题】:Antiforgerytoken in postdata of jqgrid, MVC c#jqgrid,MVC c#的postdata中的Antiforgerytoken
【发布时间】:2014-12-30 02:22:25
【问题描述】:

我正在尝试为 jqgrid 实现防伪令牌,以下是我正在尝试做的事情

    var token =  $('[name= "__RequestVerificationToken"]').val()

 $("#gridname").jqGrid('setGridParam',{ postData:{__RequestVerificationToken:token,aID : @ViewBag.AID}});     

 $("#gridname").trigger("reloadGrid");

我还放置了@Html.AntiForgeryToken();在页面的正文中。使用调试器我可以看到也生成了一个令牌,但我得到了

异常详细信息:System.Web.Mvc.HttpAntiForgeryException:所需的防伪令牌未提供或无效。

在控制器中,我放置了 [ValidateAntiForgeryToken] 并且它没有达到相同的效果。有没有办法解决这个问题。防伪令牌可以在jqgrid中应用吗?

【问题讨论】:

  • 您是否尝试将伪造令牌作为标头发送?
  • 尝试直接在 postData 中传递值: __RequestVerificationToken:$('[name="__RequestVerificationToken"]').val() 或者你尝试在 jqGrid 的额外参数中传递它: extraparam : { __RequestVerificationToken: $('input[name=__RequestVerificationToken]').val()} }

标签: c# jquery asp.net-mvc jqgrid antiforgerytoken


【解决方案1】:

您必须按照 Nacho 在 cmets 中的建议在您的 HEADERS 中添加请求伪造令牌。

var headers = {};

headers['__RequestVerificationToken'] = $('[name= "__RequestVerificationToken"]').val();

 $("#gridname").jqGrid('setGridParam',{ headers: headers, postData:{aID : @ViewBag.AID}});     

希望对你有帮助

【讨论】:

  • 感谢您的建议。我尝试像您提到的那样传入标头,但我仍然收到 System.Web.Mvc.HttpAntiForgeryException:未提供所需的防伪令牌或无效。你看我还有什么可以试试的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2015-03-29
  • 2011-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多