封装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 @   0龙行者0  阅读(232)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示