衆所周知,在前端請求中,通常經常使用ajax進行交互,目前市場上也有一些用promise封裝好的解決方案,好比axios,用起來很方便,可是做爲技術人員,只會用別人的輪子,那也不是咱性格,下面手動封裝一個原生的ajax前端
直接上代碼ios
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)
})
複製代碼