由於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});(首選)