//前台代码
//#contact-form 表单ID
$(function () {
$("#contact-form").submit(function () {
$.ajax({
type: "post",
url: "?",
dataType: "text",
async: false,
data: $('#contact-form').serialize(),
success: function (data) {
debugger;
alert(data);
}
});
});
});
//后台代码
string name = Request.Form["name"];
string textEmail = Request.Form["email"];
string pone = Request.Form["pone"];
string messages = Request.Form["message"];
string Msg = "";
BusinessConsulted bcb = new BusinessConsulted
{
MessageName = name,
MessageEmail = textEmail,
ContactInformation = pone,
Messages = messages,
MessageTime = DateTime.Now.ToString(),
State = 0,
ClassifyOne = 0,
ClassifyTwo = 0
};
BusinessConsultedBLL bb = new BusinessConsultedBLL();
bb.InsertBusinessConsulted(bcb, ref Msg);
Response.Write(Msg);
Response.End();
调试的时候,进入后台,如果是ajax异步,就是每行走两次,同步就是走完一遍,在走一遍
前台输出的时候,也是输出两次,先输出ajax回调的参数值,然后又显示了正常表单提交的返回值
改正:
$("#contact-form").submit(function () {
$.ajax({
type: "post",
url: "?",
dataType: "text",
async: false,
data: $('#contact-form').serialize(),
success: function (data) {
debugger;
alert(data);
}
});
return false;
});
原因:
因为有提交了一次表单。你的ajax是同步的,所以提交表单动作被挂起直到ajax完毕后(此时执行请求过一次服务器),表单会提交,这样就会请求第二次服务器,如果你ajax和表单请求同一个页面就会出现执行2次的问题,如插入2条相同的数据什么的。
转载自: http://bbs.csdn.net/topics/391852319