封装axios来进行ajax请求
1 /* 2 ajax请求函数模块 3 返回值: promise对象(异步返回的数据是: response.data) 4 */ 5 import axios from 'axios' 6 export default function ajax (url, data={}, type='GET') { 7 8 return new Promise((resolve, reject) => { 9 // 执行异步ajax请求 10 let promise 11 if (type === 'GET') { 12 // 准备url query参数数据 13 let dataStr = '' //数据拼接字符串 14 Object.keys(data).forEach(key => { 15 dataStr += key + '=' + data[key] + '&' 16 }) 17 if (dataStr !== '') { 18 dataStr = dataStr.substring(0, dataStr.lastIndexOf('&')) 19 url = url + '?' + dataStr 20 } 21 // 发送get请求 22 promise = axios.get(url) 23 } else { 24 // 发送post请求 25 promise = axios.post(url, data) 26 } 27 promise.then(function (response) { 28 // 成功了调用resolve() 29 resolve(response.data) 30 }).catch(function (error) { 31 //失败了调用reject() 32 reject(error) 33 }) 34 }) 35 }
关于此封装模块的使用:
1 返回的对象是一个promise, 我们在获取到返回结果时需要通过 .then( response => { response.data } ) 来操作异步请求带过来的数据