2014-12-30 47 views
1

我想實現防僞令牌jqGrid的,下面就是我試圖做Antiforgerytoken在jqGrid的的POSTDATA,MVC C#

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中應用Antiforgery令牌嗎?

+0

你有沒有試過發送僞造的令牌作爲一個頭? –

+0

嘗試直接傳遞值POSTDATA:__RequestVerificationToken:$( '[NAME = 「__RequestVerificationToken」]')VAL() 或者,試圖通過它在jqGrid的額外PARAM: extraparam:{__RequestVerificationToken:$(」輸入[name = __ RequestVerificationToken]')。val()}} – user3263194

回答

1

您必須在註釋中添加請求僞造令牌,如Nacho在註釋中所示。

var headers = {}; 

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

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

希望這有助於

+0

感謝您的建議。我嘗試傳遞像你提到的標題,但我仍然得到System.Web.Mvc.HttpAntiForgeryException:所需的防僞標記未提供或無效。還有什麼你看到我可以嘗試。 –