ajax請求函數(shù) 返回值:promise對象(異步返回的數(shù)據(jù)是response.data)
下載axios:
npm install --save axios
完整代碼:
- 默認(rèn)向外暴露ajax函數(shù)
傳入?yún)?shù):請求url,請求參數(shù)格式,請求方式;
import axios from 'axios'
export default function ajax (url, data = {}, type = 'GET') {
// 執(zhí)行異步ajax請求
let promise = new Promise((resolve, reject) => {
if (type === 'GET') {
// 準(zhǔn)備url query參數(shù)數(shù)據(jù)
let dataStr = '' // 拼接字符串
Object.keys(data).forEach(key => {
dataStr += key + '=' + data[key] + '&'
})
if (dataStr !== '') {
dataStr = dataStr.substring(0, dataStr.lastIndexOf('&'))
url = url + '?' + dataStr
}
// 發(fā)送get請求
promise = axios.get(url)
} else {
// 發(fā)送post請求
promise = axios.post(url, data)
}
promise.then(function (response) {
// 成功回調(diào)
resolve(response.data)
}).catch(function (error) {
// 失敗回調(diào)
reject(error)
})
})
return promise
}