零基础学Axios

news/2024/9/25 13:36:28/

Axios官网:Axios官网 

想用Axios前需要在项目中安装axios,安装方式如下:

下列是axios请去方式,本文主要讲解post和get请求,其他请求和这两种请求方法相同。

1 get请求

1.1 不带请求参数

前端

后端

 

1.2 带请求参数 

前端

写法一(推荐)

写法二:

但是这种写法在遇到特殊字符,需要进行处理。不处理的后果如下。(后端接收不到参数)

处理方式

后端 

2 post请求 

2.1 不带请求参数

前端

后端 

2.2 带请求参数 

方式一

参数放在请求头,不是很推荐

前端

 后端

方式二 

参数放在请求体

(post请求第二个就是请求体)

前端

后端

后端需要进行处理,不然接收不到请求参数

 处理方式(后端处理)

        写法一:

        写法二:将接收参数直接封装一个对象

 方式三

这种方式和方式二都是将参数放在请求体,但是方式二是后端来进行处理方式三是前端进行处理,后端不用做处理。

前端

    写法一

   写法二

后端

 方式四

前端

后端

     写法一

   写法二

3 配置项

在项目中,可能每个请求都要设置请求头或一些其他设置,若在每个请求中都来进行设置,那将十分繁琐。我们可利用下面的配置来进行统一处理。

import axios from 'axios'// 创建一个新的axios实例
const request = axios.create({baseURL: 'http://smart-shop.itheima.net/index.php?s=/api',timeout: 5000
})

 

 一般我们会将配置项,单独抽离到一个文件中,需要用到配置项的文件自行导入

使用 

 

 3.1 withCredentials 使用场景

在跨域情况下,后端传给前端的JSESSIONID通常不会自动保存。

这是因为浏览器的同源策略限制。当进行跨域请求时,浏览器会对跨域的 Cookie 进行严格的限制。默认情况下,浏览器不会自动将跨域响应中的JSESSIONID保存到本地的 Cookie 中。如果需要

在跨域情况下传递和保存JSESSIONID,可以采取以下方法:

后端:在后端的响应中添加特定的 CORS 响应头,允许跨域请求携带 Cookie。例如,在 Java Spring Boot 中,可以通过配置WebMvcConfigurer来实现:

java">import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("http://your-frontend-url.com").allowedMethods("GET", "POST", "PUT", "DELETE").allowCredentials(true);}
}

或在注解上加上allowCredentials

前端 :前端是需要配合处理的

在前端的请求中,确保设置了withCredentialstrue,以告知浏览器在跨域请求中包含凭证。例如在 Axios 中:

在不跨域的情况下,浏览器通常会自动保存服务器返回的 JSESSIONID。 

4 响应数据 

后端返回给前端的数据都在data下面。

5 拦截器 

5.1 请求拦截器

可以在这么统一加上请求头token什么的。

javascript">// 添加请求拦截器
request.interceptors.request.use(function (config) {// 在发送请求之前做些什么,return config
}, function (error) {// 对请求错误做些什么return Promise.reject(error)
})

5.2 响应拦截器

javascript">// 添加响应拦截器
request.interceptors.response.use(
function (response) {// 对响应数据做点什么const res = response.dataif (res.status !== 200) {return Promise.reject(res.message)} return res
}, function (error) {// 对响应错误做点什么return Promise.reject(error)
})


http://www.ppmy.cn/news/1530305.html

相关文章

YOLOv8改进,YOLOv8替换主干网络为VanillaNet( CVPR 2023 华为提出的全新轻量化架构),大幅度涨点

改进前训练结果: 改进后训练结果: 摘要 基础模型的核心理念是“更多即不同”,这一理念在计算机视觉和自然语言处理领域取得了惊人的成功。然而,变压器模型的优化挑战和固有复杂性呼唤一种向简化转变的范式。在本研究中,引入了 VanillaNet,一种拥抱设计优雅的神经网络架…

从Yargs源码学习中间件的设计

yargs中间件介绍 yargs 是一个用于解析命令行参数的流行库,它能帮助开发者轻松地定义 CLI(命令行接口),并提供参数处理、命令组织、help文本自动生成等功能。今天我们来学习一下它对中间件的支持。 中间件的API详细信息&#xff0…

前端分段式渲染较长文章

实现思路: 1. 后端返回整篇文章。 2. JavaScript 分段处理:将文章按一定的字符或段落长度分割,然后逐步将这些段落追加到页面上。 3. 定时器或递归调用:使用 setInterval 或 setTimeout 来控制段落的逐步渲染。 代码实现示例 …

Python发送邮件附件全攻略:从设置到发送!

Python发送邮件附件的详细步骤?如何利用Python发信? Python作为一种强大的编程语言,提供了丰富的库来帮助我们自动化这一过程。AokSend将详细介绍如何使用Python发送邮件附件,从基础设置到实际发送,带你一步步掌握这一…

飞驰云联FTP替代方案:安全高效文件传输的新选择

FTP协议广泛应用各行业的文件传输场景中,由于FTP应用获取门槛低、使用普遍,因此大部分企业都习惯使用FTP进行文件传输。然而面临激增的数据量和网络安全威胁的不断演变,FTP在传输安全性与传输性能上有所欠缺,无法满足企业现在的高…

如何有效规避亚马逊测评中的砍单封号风险,保障账号安全?

近期,众多朋友在亚马逊平台进行测评时遭遇了订单被取消(砍单)甚至账号被封禁的问题,即便使用相同的测评系统和操作方法,不同用户间的体验却大相径庭。这一现象往往源于测评环境的不完善,一旦账号被风控系统…

mysql表逆向实体类

mysql表逆向实体类 目标框架springboot,mybatisplus package com.wql.repackage;import java.io.FileWriter; import java.io.IOException; import java.sql.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List;public class EntityClas…

免费下载6组简历模板,让HR一眼相中你!

简历是求职者向招聘单位展示自我的重要工具,选择一份高质量的简历模板免费下载,能够提升面试机会并留下深刻印象。优秀的简历模板需具备清晰的信息结构、出色的视觉效果及合理的排版布局。简历的配色可以凸显求职者的个性,而有逻辑性的排版则…