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) }) }) }