眾所周知,在前端請求中,一般常用ajax進行互動,目前市場上也有一些用promise封裝好的解決方案,比如axios,用起來很方便,但是作為技術人員,只會用別人的輪子,那也不是我們性格,下面手動封裝一個原生的ajax
直接上程式碼
function pajax({url=null, method='GET', dataType='JSON', async='true'}){ //這裡有四個引數,對應常用的ajax配置,這裡用ES6設定預設引數的方式進行設值
return new Promise((resolve,reject)=>{
let xhr = new XMLHttpRequest
xhr.open(method, url, async)
xhr.responseType = dataType
xhr.onreadystatechange = () =>{
//狀態碼做一個簡單的正則驗證
if(xhr.readyState === 4 && (!/^[23]\d{2}$/.test(xhr.status))) {
let result = xhr.responseText
resolve(result)
}
}
xhr.onerror = (err) => {
reject(err)
}
xhr.send()
})
}
pajax({
url:'./test.json',
method: 'get'
}).then((result)=>{
console.log(result)
},(err)=>{
console.log(err)
})
複製程式碼