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 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视图验证 (编辑:开发网_商丘站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐