封装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 } ) 来操作异步请求带过来的数据

posted @ 2021-01-13 19:52  0龙行者0  阅读(232)  评论(0编辑  收藏  举报