加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_商丘站长网 (https://www.0370zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP表单 JQuery Form Ajax提交Asp

发布时间:2022-10-13 11:55:19 所属栏目:Asp教程 来源:
导读:  很简单的一段代码,就是不能提交

  //表单参数

  var options = {

  url:"article.aspx?action=add&time="+new Date().getMilliseconds(),

  beforeSubmit: validate, // pre-submit ca
  很简单的一段代码,就是不能提交
 
  //表单参数
 
  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 失败。
 
  大概的原因,我猜想应该是jquery Form在Ajax提交之前使用使用serialize()方法将__VIEWSTATE编码到序列中,导致 Post到服务器端时的视图状态 MAC 失败。
 
  有同学就会说,你可以让页面不生成__VIEWSTATE,这个方法确实可行。
 
  在表单页面禁用VIEWSTATEASP表单,页面代码中还是会有__VIEWSTATE,唯一的办法是去掉 form的runat=server。
 
  但是去掉 runat=server后表单中就不能使用ASP.NET控件了,比如常见的也不能使用。
 
  可行的办法有两种:
 
  1.客户端的处理方法:
 
  在提交之前加上下面两行代码:
 
  $("#__VIEWSTATE").remove();
 
  $("#__EVENTVALIDATION").remove();
 
  2.服务器端的处理方法
 
  在处理页面关闭MAC视图验证
 

(编辑:开发网_商丘站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!