先記錄一下關於狀態碼的問題吧,由於這裏面涉及到兩個屬性readyState和status; 瀏覽器
readyState是XMLHttpRequest對象的一個屬性,用來標識當前XMLHttpRequest對象處於什麼狀態。 app
status是XMLHttpRequest對象的一個屬性,表示響應的HTTP狀態碼。 url
當readyState==4 完成響應狀態:此時,已經完成了HTTP響應的接收,當status==200 請求成功。例如200狀態碼,表示請求所但願的響應頭或數據體將隨此響應返回。 spa
因此當readyState==4&&status==200的時候再處理返回值,其餘的狀況都作一個彈窗,提示「您的請求正在提交中」,頁面的彈層也是覆蓋後面的頁面,因此提交按鈕天然就不能隨便點了,當有返回值的時候直接更改彈窗的提示信息就能夠了 code
var getXmlHttpRequest = function () { if (window.XMLHttpRequest) { //主流瀏覽器提供了XMLHttpRequest對象 return new XMLHttpRequest(); } else if (window.ActiveXObject) { //低版本的IE瀏覽器沒有提供XMLHttpRequest對象 //因此必須使用IE瀏覽器的特定實現ActiveXObject return new ActiveXObject("Microsoft.XMLHTTP"); } }; var xhr = getXmlHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { //獲取成功後執行操做 //數據在xhr.responseText }else{ //彈出提示正在提交的提示彈層 } }; xhr.open("TYPE", "URL", true); //設置頭信息,否則send傳輸的參數容易失敗,後臺接收不到參數 xhr.setRequestHeader("Content-Type", 'application/x-www-form-urlencoded'); xhr.send("tkmoney="+$('#tkmoney').val());