非同步對象(XMLHttpRequest)的協助指令碼

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   ar   os   使用   sp   

非同步對象五部曲

這是post請求的、

 //1.00建立非同步對象            var xhr = new XMLHttpRequest();            //2.0            xhr.open("post", url,params, true);            //3.0將參數使用Formdata屬性傳遞            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");            //4.0設定回呼函數            xhr.onreadystatechange = function () {                if (xhr.readyState == 4 && xhr.status == 200) {                    alert(xhr.responseText);                }            }            //5.0傳遞參數            xhr.send(params);

結合get請求做一個非同步對象的封裝

 

get 請求中的

  xhr.setRequestHeader("If-Modified-Since", "0"); 是為了清除緩衝

而post請求的
 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

是為了傳輸方式
在<from method=‘post‘ type="">
<from>中的type可以得到三種方式,其中包括application/x-www-form-urlencoded

 

var ajaxHelp = {    CreatXHR: function () {        //建立非同步對象        var xhr = new XMLHttpRequest();        return xhr;    },    //ajax的get請求    AjaxGet: function (url, callBack) {        this.AJaxCommon("get", url, null, callBack);    },    //ajax的post請求    AjaxPost: function (url, params, callBack) {        this.AJaxCommon("post", url, params, callBack);    },    AJaxCommon: function (method, url, params, callBack) {        //1.0        var xhr = this.CreatXHR();        //2.0        xhr.open(method, url, true);        //3.0        if (method == "get") {            xhr.setRequestHeader("If-Modified-Since", "0");        } else {            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");        }        //4.0        xhr.onreadystatechange = function () {            if (xhr.readyState == 4 && xhr.status == 200) {                var datas = JSON.parse(xhr.responseText);                //執行回呼函數                callBack(datas);            }        }        //5.0        xhr.send(params);    }};

 

ps:在JQuery裡面是有$.ajax  和$.get /   $.Post  等非同步請求的方法的。以前的封裝就不用了。額。好扯。其實他們底層也是這樣的寫的呢。JQuery就是為瞭解決各個瀏覽器的相容性問題而已

非同步對象(XMLHttpRequest)的協助指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.