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
摘要:?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({ ...
摘要:當(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)客...
摘要:本文詳細(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...
摘要:屬性是此次響應(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)求...
閱讀 3237·2021-11-23 09:51
閱讀 1042·2021-08-05 09:58
閱讀 676·2019-08-29 16:05
閱讀 985·2019-08-28 18:17
閱讀 3039·2019-08-26 14:06
閱讀 2734·2019-08-26 12:20
閱讀 2171·2019-08-26 12:18
閱讀 3074·2019-08-26 11:56