由于jquery里默认ajax调用是异步的,所以在一些需要同步执行的场合就会出问题,如我有一个表单,我想在提交它之前对里面的一个文本框进行验证(要提交到服务器上连接数据库验证的),就会出现提交的时候还没等服务器返回验证结果,表单已经被提交了。
解决方法有
1.直接在$.ajax()中设置async: false
$.ajax({ type: "POST", //http请求方式 url: "XMLServer", //服务器段url地址 data: "username=" + username, //发送给服务器段的数据 dataType: "html", //告诉JQuery返回的数据格式 success: callback, //定义交互完成,并且服务器正确返回数据时调用的回调函数 async: false });
2.使用$.ajaxSetup({async: false});