封裝ajax請求函數(shù)模塊

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
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容