[英]anti-forgery form field “__RequestVerificationToken” is not present when using jQuery Ajax and the Html.AntiForgeryToken()
[英]Adding elements to a form using JQuery causes the “The anti-forgery token could not be decrypted” error on submit
我有一個 MVC 應用程序,具有包含@Html.AntiForgeryToken()
的常規表單,但是我有一個 javascript 函數,使用 JQuery .append() 調用將元素添加到表單中,我正在使用此函數來包含元素充當表單中的 hiddenfor() 元素,並且值應在提交時序列化為相應的 Post Controller 方法,
如下所述:
$('#DivHiddenAccountsSub').append("<input id=\"LstAccountsSubDisplay_" + objAccountSub.ID + "__ActId\" name=\"LstAccountsSubDisplay[" + objAccountSub.ID + "].ActId\" type=\"hidden\" value=\"" + objAccountSub.ActId + "\" />");
但是,當我點擊提交按鈕時,我收到以下錯誤:“無法解密防偽令牌。如果此應用程序由 Web Farm 或集群托管,請確保所有機器都運行相同版本的 ASP.NET網頁和配置指定顯式加密和驗證密鑰。不能在集群中使用自動生成,
注意:上面列出的代碼,在替換 objAccountSub.ID 后,應該類似於: <input id="LstAccountsSubDisplay_0__ActId" name="LstAccountsSubDisplay[0].ActId" type="hidden" value="01001" />
如何在不破壞 AntiForgeryToken() 值的情況下將元素附加到表單中?
嘗試先創建元素,然后將其附加如下:
$('#DivHiddenAccountsSub').append($("<input id=\"LstAccountsSubDisplay_" + objAccountSub.ID + "__ActId\" name=\"LstAccountsSubDisplay[" + objAccountSub.ID + "].ActId\" type=\"hidden\" value=\"" + objAccountSub.ActId + "\" />"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.