温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JQuery Form Ajax提交asp.net表单时失败怎么办

发布时间:2021-07-15 11:51:44 来源:亿速云 阅读:167 作者:chen 栏目:编程语言

这篇文章主要介绍“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表单时失败怎么办”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI