成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

用ES6封裝AJAX函數(shù),支持GET/POST

wangdai / 3015人閱讀

function Ajax({
    type = "GET",
    url = "",
    async = true,
    params = {},
    responseType = "text",
    contentType = "application/x-www-form-urlencoded", //xhr.setRequestHeader("Content-Type",option.contentType); 
    done = () => {},
    fail = () => {}
}) {
    type = type.toUpperCase();
    params = formatParams(params);
    //創(chuàng)建xhr對(duì)象 step1
    const xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    xhr.responseType = responseType;    
    //接收 step3
    xhr.onreadystatechange = () => {
        if (xhr.readyState === 4) {
            const status = xhr.status;
            if (status >= 200 && status < 300) {
                done(response);
            } else {
                fail(status);
            }
        }
    }
    //發(fā)送 step2
    if (type === "GET") {
        xhr.open("GET", url + "?" + params, async);
        xhr.send(null);
    } else if (type === "POST") {
        xhr.open("POST", url, async);
        //設(shè)置表單提交時(shí)的內(nèi)容類(lèi)型
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xhr.send(params);
    }
}

function formatParams(params) {
    const arr = [];
    for (let name in params) {
        arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(params[name]));
    }
    arr.push(("_=" + Math.random()).replace(".", ""));
    return arr.join("&");
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/107372.html

相關(guān)文章

  • Promise解決多個(gè)異步Ajax請(qǐng)求導(dǎo)致的代碼嵌套問(wèn)題

    摘要:?jiǎn)栴}前端小同學(xué)在做頁(yè)面的時(shí)候,犯了個(gè)常見(jiàn)的錯(cuò)誤把多個(gè)請(qǐng)求順序著寫(xiě)下來(lái)了,而后面的請(qǐng)求,對(duì)前面請(qǐng)求的返回結(jié)果,是有依賴(lài)的。經(jīng)提醒,發(fā)現(xiàn)從版開(kāi)始,返回的就是對(duì)象了,那么函數(shù)可以直接返回的返回值 問(wèn)題 前端小同學(xué)在做頁(yè)面的時(shí)候,犯了個(gè)常見(jiàn)的錯(cuò)誤:把多個(gè)Ajax請(qǐng)求順序著寫(xiě)下來(lái)了,而后面的請(qǐng)求,對(duì)前面請(qǐng)求的返回結(jié)果,是有依賴(lài)的。如下面的代碼所示: var someData; $.ajax({ ...

    DobbyKim 評(píng)論0 收藏0
  • Ajax詳解

    摘要:當(dāng)請(qǐng)求完成后注冊(cè)一個(gè)回調(diào)函數(shù)。該請(qǐng)求是否觸發(fā)全局處理事件如等,請(qǐng)求發(fā)送前的回調(diào)函數(shù),用來(lái)修改請(qǐng)求發(fā)送前,此功能可用來(lái)設(shè)置自定義頭信息,在函數(shù)中返回將取消這個(gè)請(qǐng)求。例如,為請(qǐng)求指定一個(gè)回調(diào)函數(shù)名。即改變回調(diào)函數(shù)的,默認(rèn)就是傳入的整個(gè)對(duì)象。 Ajax Ajax 全稱(chēng)是 asynchronous javascript and xml,并不是新的編程語(yǔ)言,可以說(shuō)是已有技術(shù)的組合,主要用來(lái)實(shí)現(xiàn)客...

    jokester 評(píng)論0 收藏0
  • 分別使 XHR、jQuery 和 Fetch 實(shí)現(xiàn) AJAX

    摘要:本文詳細(xì)講述如何使用原生和來(lái)實(shí)現(xiàn)。使用可以無(wú)刷新地向服務(wù)端發(fā)送請(qǐng)求接收服務(wù)端響應(yīng),并更新頁(yè)面。分別要用到的方法和方法。,,都是現(xiàn)在和未來(lái)解決異步的標(biāo)準(zhǔn)做法,可以完美搭配使用。這也是使用標(biāo)準(zhǔn)一大好處。 本文詳細(xì)講述如何使用原生 JS、jQuery 和 Fetch 來(lái)實(shí)現(xiàn) AJAX。 AJAX 即 Asynchronous JavaScript and XML,異步的 JavaScript...

    Julylovin 評(píng)論0 收藏0
  • AJAX的出現(xiàn)與跨域處理

    摘要:屬性是此次響應(yīng)的文本內(nèi)容。我們可以通過(guò)屬性,指定這個(gè)事件的回調(diào)函數(shù),對(duì)不同狀態(tài)進(jìn)行不同處理。尤其是當(dāng)狀態(tài)變?yōu)榈臅r(shí)候,表示通信成功,這時(shí)回調(diào)函數(shù)就可以處理服務(wù)器傳送回來(lái)的數(shù)據(jù)。由于臨時(shí)的服務(wù)器維護(hù)或者過(guò)載,服務(wù)器當(dāng)前無(wú)法處理請(qǐng)求。 XMLHttpRequest JSON AJAX CORS 四個(gè)名詞來(lái)開(kāi)會(huì) 如何發(fā)請(qǐng)求 在前端的世界里也逛蕩了不少日子了,目前已經(jīng)get到大約5種發(fā)起請(qǐng)求...

    RancherLabs 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<