1. 程式人生 > >Vue專案中對axios進行封裝以及api介面請求

Vue專案中對axios進行封裝以及api介面請求

對axios進行封裝:

/*   定義一個ajax請求函式,並且其返回值: promise物件(非同步返回的資料是: response.data)   */ import axios from 'axios'; export default function ajax (url, data={}, type='GET') {

  return new Promise(function (resolve, reject) {     // 執行非同步ajax請求     let promise     if (type === 'GET') {       // 準備url query引數資料,       let dataStr = ''                                           //資料拼接字串       Object.keys(data).forEach(key => {         dataStr += key + '=' + data[key] + '&'       })       if (dataStr !== '') {         dataStr = dataStr.substring(0, dataStr.lastIndexOf('&'))         url = url + '?' + dataStr       }       // 傳送get請求       promise = axios.get(url)     } else {       // 傳送post請求       promise = axios.post(url, data)     }     promise.then(function (response) {       // 成功了呼叫resolve()       resolve(response.data)     }).catch(function (error) {       //失敗了呼叫reject()       reject(error)     })   }) }