XMLHttpRequest Ajax傳參,回傳過程當中不容許再次點擊

先記錄一下關於狀態碼的問題吧,由於這裏面涉及到兩個屬性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());
相關文章
相關標籤/搜索