重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍“JQuery Form Ajax提交asp.net表单时失败怎么办”,在日常操作中,相信很多人在JQuery Form Ajax提交asp.net表单时失败怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JQuery Form Ajax提交asp.net表单时失败怎么办”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站建设、曲靖网络推广、重庆小程序开发公司、曲靖网络营销、曲靖企业策划、曲靖品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供曲靖建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
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表单时失败怎么办”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!