簡體   English   中英

使用 JQuery 向表單添加元素會導致提交時出現“無法解密防偽令牌”錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM