双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

个人技术博客——Axios的使用总结

Zhengxpeng Zhengxpeng 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这个作业属于哪个课程FZU_SE_teacherW_4
这个作业要求在哪里软件工程实践总结&个人技术博客
这个作业的目标个人技术总结
其他参考文献构建之法

目录

  • 技术概述
  • 技术详述
  • Axios的引入和安装
  • 使用Axios发送请求
  • 创建Axios
  • 使用async/await简化异步请求
  • 流程图
  • 遇到的问题和解决过程
  • 总结
  • 参考文献

技术概述

Axios是一个基于Promise的HTTP客户端,用于浏览器和Node.js环境发送HTTP请求
它支持GET、POST、PUT、DELETE等请求方式,具有拦截器、请求/响应转换、并发请求等特性
适用于需要异步请求的场景,如前端与后端的数据交互
学习Axios可以提高API请求处理效率,优化错误处理和数据管理
技术难点包括跨域请求、请求管理、并发请求控制和文件上传

技术详述

Axios的引入和安装

通过npm安装:

npm install axios

在模块化项目中引入

import axios from 'axios';

通过CDN直接引入

<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

在HTML文件中,可以直接使用script标签引入Axios的CDN链接,Axios会挂载到全局的 axios 变量上

使用Axios发送请求

GET请求:

axios.get('/user?ID=')
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

POST请求

axios.post('/user', {
  firstName: 'Fred',
  lastName: 'Flintstone'
})
.then(function (response) {
  console.log(response);
})
.catch(function (error) {
  console.log(error);
});

创建Axios

创建

const instance = axios.create({
  baseURL: 'http://localhost:8080'
});

发送请求

instance.get('/article/getAll')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

使用async/await简化异步请求

异步函数

async function getArticle() {
  try {
    const response = await axios.get('/user?ID=');
    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
}

流程图

img

遇到的问题和解决过程

遇到的问题问题描述解决过程
大文件上传导致请求失败在上传大文件时,可能会遇到请求超时或文件上传失败的问题调整服务器文件大小限制:在服务器端,例如使用Node.js的multer中间件时,可以设置文件大小限制;增加请求超时时间:在前端,通过设置timeout选项增加请求的超时时间,防止上传过程中超时
请求超时问题在网络不稳定的情况下,请求可能会超时可以在Axios配置中设置请求超时时间,例如timeout: 4000
返回数据格式不符合预期服务器返回的数据可能并不是预期的格式,例如期望接收到一个JSON对象,但服务器返回了一个空字符串或HTML页面指定responseType:可以使用responseType配置选项,强制Axios解析返回的数据格式。如果返回的确实是JSON数据,可以指定responseType: 'json'

总结

Axios作为一种流行的HTTP客户端,以其简洁的API和强大的功能集在前端开发中占据了重要地位。它基于Promise设计,使得异步HTTP请求的处理变得更加直观和易于管理。在实际应用中,Axios能够帮助开发者轻松实现GET、POST、PUT、DELETE等HTTP请求,同时也支持请求和响应的拦截,这对于统一处理请求头、认证信息等场景非常有用。然而,Axios的使用也伴随着一些挑战,比如跨域问题通常需要后端配置CORS或者前端使用代理服务器来解决;请求超时可能需要调整Axios的timeout设置;服务器返回空数据或格式不符时,前端需要有相应的容错处理机制。此外,大文件上传问题可能需要调整服务器端的配置以及Axios的超时设置。尽管存在这些挑战,Axios因其强大的功能和灵活性,仍然是现代Web开发中不可或缺的工具之一。

参考文献

...全文

相关推荐

Vue cli3和flask搭建的个人博客项目,前后端分离,使用axios进行前后端通信,运用vuex、element-ui技术

基于Vue cli3和flask搭建的个人博客项目,前后端分离,使用axios进行前后端的通信,还运用了vuex、element-ui等,主要实现了登录注册、首页博客展示、添加博客、个人博客、我的收藏、评论博客等模块。非常适合python web开发全栈开发学习的练手项目。 Vue+Flask+mysql打造前后端分离的个人博客 基于Vue cli3和flask搭建的个人博客项目,前后端分离,使用axios进行前后端的通信,还运用了vuex、element-ui等,主要实现了登录注册、首页博客展示、添加博客、个人博客、我的收藏、添加评论、删除博客等模块,是一个小型项目 功能: ①用户管理,登录注册,前端传输时对密码的md5加密 ②首页博客展示,时钟展示 ③添加博客 ④添加博客评论(新增用户头像、图片的懒加载、节流与防抖) ⑤收藏博客 ⑥进入个人中心页面,查看个人发表的博客以及收藏的博客,对这些博客进行编辑删除处理等 前端代码在src文件夹下 后端代码在flask文件夹下,使用蓝图进行管理 数据库是mysql

白话机器学习

基于springbootvue的个人博客系统前端部分

基于spring boot vue的个人博客系统(前端部分)

weixin_39840924

feather-blog-app:我的个人博客应用

羽毛博客应用程序 我的个人博客应用个人博客APP 技术栈技术栈 React本机 Axios 构建设置 # install dependencies yarn install # serve with hot reload at localhost:8081 react-native run-ios react-native run-android # build for production with minification npm run bundle-ios npm run bundle-android

你就应该

Java+MySQL基于Spring Boot实现个人博客系统(毕业设计、课程设计使用).zip

本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于node.js的koa框架进行开发。 前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。 后端部分:采用koa作为开发框架,同时集成Redis等相关技术。

爱吃土豆丝的打工人

跨平台个人技术博客网站(Vue+ElementUI+SpringBoot).zip

项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:项目具体内容可查看/点击本页面下方的*资源详情*,包含完整源码+工程文件+说明(若有)等。【若无积分,此资源可私信获取】 【本人专注IT领域】:有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为您提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【适合场景】:相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可基于此项目来扩展开发出更多功能 #注 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担 2. 部分字体及插图等来自网络,若是侵权请联系删除,本人不对所涉及的版权问题或内容负法律责任。收取的费用仅用于收集和整理资料耗费时间的酬劳

热爱技术。
评论
收藏 已收藏
分享
返回顶部