🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] #### 封装Axios请求 ~~~ import axios from 'axios' /** * * @param url 请求url * @param params 请求参数 * @param type 请求类型 * @returns {Promise<any>} 返回Promise对象 */ export default function ajax(url = '', params = {}, type = 'GET') { let promise; return new Promise((resolve, reject) => { // 判断请求类型 if (type === 'GET') { let paramStr = ''; // {id:1, name: '张三', age: 18} // [id, name, age] Object.keys(params).forEach(key => { // id=1&name=张三&age=18& paramStr += key + '=' + params[key] + '&' }) // 截取最后一位&符 if (paramStr.length > 0 ) { // id=1&name=张三&age=18 paramStr = paramStr.substring(0, paramStr.lastIndexOf('&')) } // 拼接最终url http://localhost/?id=1&name=张三&age=18 url += '?' + paramStr; // 发送 get 请求 promise = axios.get(url) } else if (type === 'POST') { promise = axios.post(url) } // 返回请求体 promise.then(res => { resolve(res.data) }) .catch(err => { reject('服务端异常,请联系后台管理员' + err) }) }) } ~~~ ***** #### 进行调用 ~~~ import ajax from './ajax' // 获取首页banner数据 export const getHomeBanner = () => ajax('/api/getBanner'); ~~~