Axios:贯穿前后端的数据链

2024-03-18 07:20
文章标签 axios 端的 数据链 贯穿

本文主要是介绍Axios:贯穿前后端的数据链,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • Axios:贯穿前后端的数据链
    • 什么是axios?
    • axios的优点
    • axios处理get请求
    • axios处理post请求
    • axios并发请求处理
    • axios全局变量配置
    • axios的实例封装
    • axios中拦截器

Axios:贯穿前后端的数据链

什么是axios?

  1. axios是一个基于promise网络请求库
  2. axios可以实现HTTP协议的各种方法的网络请求
  3. 目前axios是前后端分离开发模式中应用最广泛的网络请求库

axios的优点

  1. axios包尺寸小且提供了易于拓展的接口
  2. axios专注于实现网络请求
  3. axios上手容易,易学习

axios处理get请求

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script></head><body></body><script>// // 定义获取随机狗图片的函数function getRandomDogImage() {// Dog API的URL,用于获取随机狗图片const dogApiUrl = 'https://dog.ceo/api/breeds/image/random';// 使用axios发送GET请求axios.get(dogApiUrl).then(function (response) {// 请求成功,处理响应数据console.log('Random dog image URL:', response.data.message);// 这里你可以将图片URL设置到<img>标签的src属性,或者进行其他操作}).catch(function (error) {// 请求失败,处理错误console.error('Error fetching random dog image:', error);});}// 调用函数getRandomDogImage();</script>
</html>

axios处理post请求

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script></head><body></body><script>function createUser() {// JSONPlaceholder的URL,用于创建新用户const usersUrl = 'https://jsonplaceholder.typicode.com/users';// 准备要发送的数据const userData = {name: 'llr'};// 使用axios发送POST请求axios.post(usersUrl, userData).then(function (response) {// 请求成功,处理响应数据console.log('User created:', response.data);}).catch(function (error) {// 请求失败,处理错误console.log('Error creating user:', error);});}// 调用函数createUser();</script>
</html>

axios并发请求处理

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script></head><body></body><script>function createUser() {// JSONPlaceholder的URL,用于创建新用户const usersUrl = 'https://jsonplaceholder.typicode.com/users';// 准备要发送的数据const userData = {name: 'llr'};// 使用axios发送POST请求axios.all([axios.get('https://dog.ceo/api/breeds/image/random'),axios.post(usersUrl,userData)]).then(function (response) {console.log(response);console.log(response[0].data);console.log(response[1].data);}).catch(function (error) {console.log(error);});}// 调用函数createUser();</script>
</html>

axios全局变量配置

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script></head><body></body><script>// 模拟配置文件axios.defaults.baseURL = 'https://dog.ceo/api/breeds/image/';function getRandomDogImage() {const dogApiUrl = 'random';axios.get(dogApiUrl).then(function (response) {console.log('Random dog image URL:', response.data.message);}).catch(function (error) {console.error('Error fetching random dog image:', error);});}getRandomDogImage();</script>
</html>

axios的实例封装

创建axios实例允许您为特定的配置项设置默认值。这意味着您可以为所有请求预设一些通用的配置,如基础URL、请求头、响应类型等,而无需在每次发送请求时重复设置。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script></head><body></body><script>// axios实例封装let dog = axios.create({baseURL: 'https://dog.ceo/api/'})let users = axios.create({baseURL: 'https://jsonplaceholder.typicode.com/'})axios.all([dog.get('breeds/image/random'),users.post('users',{name:'zs',email:'zs@qq.com'})]).then(function (response) {console.log(response);console.log(response[0].data);console.log(response[1].data);}).catch(function (error) {console.log(error);});</script>
</html>

axios中拦截器

在请求发送前或响应返回后执行自定义逻辑。

两种类型的拦截器:

  • 请求拦截器:请求拦截器用于在请求发送到服务器之前修改请求。这是添加认证令牌、设置公共请求头、转换请求数据等任务的理想场所。
  • 响应拦截器:响应拦截器用于在响应返回到客户端之前修改响应。这是处理HTTP状态码、统一错误处理、转换响应数据等任务的理想场所。

求拦截器和响应拦截器的回调函数都应该返回一些东西:

  • 请求拦截器应该返回修改后的config对象,或者如果需要取消请求,则返回Promise.reject
  • 响应拦截器应该返回修改后的响应数据,或者如果需要拒绝响应,则返回Promise.reject
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script></head><body></body><script>// 请求拦截器axios.interceptors.request.use( (config) => {console.log("请求拦截器")return config}, (err) => {console.log("请求拦截器请求错误")} )// 响应拦截器axios.interceptors.response.use( (response) => {console.log("响应拦截器")return response}, (err) => {console.log("响应拦截器请求错误")} )const dogApiUrl = 'https://dog.ceo/api/breeds/image/random';axios.get(dogApiUrl).then(function (response) {console.log('Random dog image URL:', response.data.message);}).catch(function (error) {console.error('Error fetching random dog image:', error);});</script>
</html>

记住,生活就像一盒巧克力,你永远不知道下一块会是什么味道——除非你先读了包装盒上的成分表hhhh

这篇关于Axios:贯穿前后端的数据链的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/821598

相关文章

Vue的axios处理跨域问题

// axios 配置 axios.defaults.withCredentials = true; //设置ciookes

Vue跨域问题、Vue配置开发环境代理服务、集成Axios发送Ajax请求、集成vue-resource发送Ajax请求

目录 1. Ajax请求服务介绍2. axios的安装3. Vue跨域问题介绍和解决方案4. 使用vue-cli配置开发环境代理服务4.1 简单配置4.2 复杂配置4.3 二次封装 5. 集成vue-resource发送Ajax请求 1. Ajax请求服务介绍 xhr: new XHLHttpRequest().open()/send()。偏向底层JQuery: 对xhr进行了封

彻底解决windows端的Linux shell流畅使用问题

前言 在windows下也可以生活在Linux的shell中,目前有几种方式实现,1、通过Cygwin的Linux模拟终端,2、通过Putty或各种ssh终端Term连接远程主机,3、通过浏览器的webide(比如像海外的c9,国内的cloud studio),4、通过虚拟机(比如vmware,virtual box或windows自带的虚拟机等)。 这些在windows端的linux生态,都或

Javaweb学习之Vue_Axios网络请求(七)

认识Axios Axios 是一个流行的 JavaScript 库,用于简化 HTTP 请求的发送和处理。它基于 Promise 的概念,使得 HTTP 请求和响应处理更加直观和易于管理。Axios 可以在浏览器和 Node.js 环境中使用,主要用于从客户端向服务器发送请求并接收响应。 主要特点 基于 Promise:Axios 返回的请求和响应都是 Promise 对象,使得异步操作更

2024年最新版Ajax+Axios 学习【包含原理、Promise、报文、接口等...】

基础知识 AJAX概念 AJAX概念:是浏览器与服务器进行数据通信的技术。 认识URL 定义:统一资源定位符,简称网址,用于访问网络上的资源。 组成: http协议:超文本传输协议,规定浏览器和服务器之间传输数据的格式。域名:标记服务器在互联网中方位。资源位置:标记资源在服务器下的具体位置。 查询参数 定义:浏览器提供给服务器的额外信息,让服务器返回浏览器想要的数据。 语法:

vue axios发送post请求跨域解决

跨越解决有两种方案,后端解决,前端解决。后端解决参考Django跨域解决-CSDN博客 该方法之前试着可以的,但是复制到其他电脑上报错,所以改用前端解决 1、main.js做增加如下配置 import axios from 'axios'Vue.prototype.$axios = axiosaxios.defaults.baseURL = '/api/' //关键代码axios.d

解决:axios 请求头url传参数组时发生400错误

一、前言 axios封装的网络请求,url传参时,数组作为参数传递,发生400错误请求时数组参数转url会保留 [] 二、原因 RFC3986:除了 数字 + 字母 + -_.~ 不会被转义,其他字符都会被以百分号(%)后跟两位十六进制数 %{hex} 的方式进行转义 url 编码标准 RFC3986 是保留方括号的可能 axios 非最新版本也是一个原因,当前使用的"axios

移动端视频编辑SDK,从移动端到桌面端的无缝衔接

美摄科技作为视频编辑技术领域的佼佼者,携其创新的移动端视频编辑SDK解决方案,正以前所未有的姿态,重新定义视频创作的边界,让每一位创作者都能轻松驾驭创意,实现从灵感闪现到作品呈现的无缝对接。 【一键解锁创意无限,模板应用尽在指尖】 美摄科技的移动端视频编辑SDK,集成了丰富多样的视频模板库,无论是炫酷动感的Vlog风格、温馨感人的生活记录,还是专业级别的商业广告,只需一键应用,即可让您的视频瞬

【HarmonyOS 4.0】网络请求 - axios

axios 相当于鸿蒙应用项目的一个第三方库,鸿蒙应用项目使用ohpm管理(包括安装,卸载等)第三方库。除了axios,还有很多其他的第三方库可供开发者使用,所有的第三方库都收录在OpenHarmony三方库中心仓。 1. 安装 axios 库 1.1 查看 ohpm 安装目录 1.2 把 ohpm 安装目录添加到电脑Path环境变量中 1.3 安装 axios:ohpm i @ohos

vue2.0中axios请求配置

vue2.0中axios请求配置 一、vue2.0项目中1.配置2.使用 二、vue2.0+ts项目中如何配置1.配置2.使用 一、vue2.0项目中 1.配置 // axios.jsimport axios from 'axios';import { Message } from 'element-ui';import router from '../../route