您好,登錄后才能下訂單哦!
這篇文章主要介紹“JQuery Form Ajax提交asp.net表單時失敗怎么辦”,在日常操作中,相信很多人在JQuery Form Ajax提交asp.net表單時失敗怎么辦問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JQuery Form Ajax提交asp.net表單時失敗怎么辦”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Ajax提交asp.net表單問題描述:很簡單的一段代碼,就是不能提交
//表單參數 var options = { url:"article.aspx?action=add&time="+new Date().getMilliseconds(), beforeSubmit: validate, // pre-submit callback success: response, // post-submit callback error: function() { alert("Ajax Submit Error!"); return false; } }; //綁定Ajax提交到表單 $("#add_article").ajaxForm(options);
validate和response函數就不貼出來了。
服務器端返回的錯誤是: 驗證視圖狀態 MAC 失敗。
Ajax提交asp.net表單問題分析
大概的原因,我猜想應該是jquery Form在Ajax提交之前使用使用serialize()方法將__VIEWSTATE編碼到序列中,導致Post到服務器端時的視圖狀態 MAC 失敗。
有同學就會說,你可以讓頁面不生成__VIEWSTATE,這個方法確實可行。
在表單頁面禁用VIEWSTATE,頁面代碼中還是會有__VIEWSTATE,***的辦法是去掉form的runat=server。
但是去掉runat=server后表單中就不能使用asp.net控件了,比如常見的< asp:textbox>也不能使用。
可行的辦法有兩種:
1.客戶端的處理方法:
在提交之前加上下面兩行代碼:
$("#__VIEWSTATE").remove(); $("#__EVENTVALIDATION").remove();
2.服務器端的處理方法
在處理頁面關閉MAC視圖驗證:
< %@ Page Language="C#" enableViewStateMac="false" >
到此,關于“JQuery Form Ajax提交asp.net表單時失敗怎么辦”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。