从axios看前后端数据交互

基于Axios完成前后端分离项目数据交互 Vue结合Mybatis完成SpringBoot前后端数据交互 阅读详情

axios作为Vue生态系统中浓墨重彩的一笔,我学习这个东西也是花了一定的时间的。刚开始的时候,也是遇到了很多问题。

逐渐摸透了它的脾气。

首先说说FormData和Payload两种数据格式的区别:

先是提交一个FormData的请求试试看:


然后我们看后端:


然后我们提交一个以Payload传输数据的请求:


我们再切到后台:


这就是使用axios和jquery ajax最大的区别。

jquery提交数据的时候,默认是以FormData的形式提交的,也就是Content-Type:"application/x-www-form-urlencoded",

而默认axios是使用的是Payload形式提交数据,也就是Content-Type:"application/json"

如何切换呢,我们需用应用以下方式:

var params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
它的意思,其实就是把这样的数据(对象){ name:"yangxu",age:23 } 转换成这样的数据(字符串) "name=yangxu&age=23"这样的查询字符串。

如果我们每次需要传递数据的时候,都这样写,是很复杂的,于是,我们可以进行一次全局配置,将请求数据按照需求进行相应的转化:

import Vue from 'vue'
import querystring from 'querystring'
import axios from "axios"

export const baseURL = process.env.NODE_ENV === 'production' ? '/' : '/api';


export const http = axios.create({
  baseURL: baseURL,
  timeout: 10000,
  withCredentials: true,
  headers: {'X-Requested-With': 'XMLHttpRequest'},
  transformRequest: [data => {
    return querystring.stringify(data);
  }]
});

然后,我们可以把这个axios的实例挂在到Vue的原型上:Vue.prototype.$http=http;

然后在Vue的组件里面,就可以这样用:

 this.$http.post('/Home/GetInfo',{
         sName:"yangxu",
         sId:20
       })
        .then(function (response) {
          console.log(response);
        })
        .catch(function (error) {
          console.log(error);
        });

这样,问题虽然解决了,我们需要进行反思。

FormData和Payload传输数据应用场景:我个人根据自己的实际开发进行总结得出,如果前台提交给后台的数据是确定的(什么是确定的,就是你提交的数据格式不会因为用户的操作而改变,如可选项,用户填写了那么提交,没就不提交,后台接收是可空类型),如果是不确定的(比如我用户点击一个操作,就必须新增一条数据,后台记录的是前台提交过去的数组),此时可以采用Payload形式提交。总之,根据自己的业务选择合适的数据提交方式。

有一种特殊的业务场景,就是需要进行文件上传的时候,此时我们只能采用Payload的形式上传。

先看业务场景截图:


我们想在上传文件的时候,并且同时带给后端一些数据,那么,我们采用HTML5提供的FormData API,这个对象比较特殊,不要尝试破坏它的结构,否则是无法上传的,具体的使用方式请参考MDN。

此时,我们需要对我们的transformRequest方法进行一些修改:


我们在调用的时候,手动指定Content-Type为“application/json”,告诉axios不要对我们的数据进行任何操作即可。

由于本人水平有限,如有纰漏,敬请指出,谢谢。


使用axios +vue php 实现前后端分离数据交互 ** 使用axios +vue php 实现前后端分离数据交互 ** 环境配置: PhpStorm(php环境) vue(webstorm) axios是个啥有啥作用 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征: 从浏览器中创建 XMLHttpRequest 从 node.js 发出 http 请求 支持 Promise API 拦截请求和响应 转换请求和响应数据 取消请求 自动转换JSON数据 客户端支持防止 CSRF/XS 阅读详情

相关推荐

【vue】前后端数据交互-axios的配置和使用

1.下载axios依赖:在package.json中的dependencies节点加“axios”: “^0.20.0”, 2.配置跨域代理:config/index.js中的proxyTable里加后端地址、配置跨域和通配 3.配置axios的baseUrl 4.请求后端接口 5.问题:(1)Error in render: "TypeError: Cannot read properties of undefined (reading 'map')"接口未提供对应数据(2)调用接口失败404,重启项目

hanne_lovegood的博客 1530

前后分离项目 —— 前端实现本地存储(数据可供其他页面使用)

前后分离项目 —— 前端实现本地存储(数据可供其他页面使用),及两种存储方法的学习。

HuoZhiyan 的博客 1693

Django + React + axios 5) 实现前后端数据交互

现在我们需要用到一个javascript lib: axios. 进入到frontend这个文件夹,安装 axios。 npm install axios@0.21.1 然后打开 package.json 文件,加入proxy这个属性。具体URL取决于你开的本地server端口。 "proxy": "http://localhost:8080", 这个属性可以省略很多重复的指定URL,现在 axios.get("http://localhost:8080/api/todos/") 可以简写成.

Northeast_Husky的博客 1703

Vue高级篇--实现前后端完全分离

Vue高级篇--实现前后端完全分离

Ysuhang的博客 8531

Vue结合axios实现前后端数据交互

通过Vue结合axios实现页面数据与服务器端的交互。

I am the light coursing in the soul of the moon. 218

从‘炼丹’到‘讲理’:物理信息神经网络(PINN)的硬约束 vs 软约束,我该选哪个?

本文深入探讨了物理信息神经网络(PINN)中硬约束与软约束的选择策略,帮助研究者在深度学习中有效融入物理先验知识。通过对比两种约束方法的实现复杂度、数据效率和计算性能,提供了针对材料科学和流体动力学等领域的实用决策指南,并介绍了自适应约束和混合约束等前沿技术。

weixin_42535703的博客 527

Python+Vue实现简单的前后端分离

使用Python-Flask+Vue+Element UI+Axios+MySQL实现简单的前后端分离

qq_45917176的博客 2万+

5分钟搞定DataDome滑块验证码:最新Capsolver API实战教程(含代理配置)

本文提供了一份利用Capsolver API快速自动化破解DataDome滑块验证码的实战教程。文章深入剖析了DataDome验证码的环境指纹与行为分析机制,并重点详解了确保成功率的住宅代理配置、API集成步骤及令牌使用等核心环节,帮助开发者高效集成稳定可靠的自动化解决方案。

milk8的博客 498

从零开始的VUE项目-03(数据的增删改查)

这一篇中,我们要实现的基本就是这么个东西 这个页面就是我们创建的DataManagement.vue页面,我们的主要代码将写在这里面,这个表格我们将用Element-UI的table组件来实现 组件地址:https://element.eleme.cn/#/zh-CN/component/table 我们先用这个基础表格看看效果,点击表格下面的显示代码,我们把这些代码复制粘贴到我们的DataManagement.vue里,运行看看效果 这时有人可能会问,我地图没有啊,来,让我们运行ng

木卯彳亍的博客 5798

告别JTAG!用Artix-7和SPI Flash实现FPGA远程升级的保姆级教程

本文详细介绍了如何利用Artix-7 FPGA和SPI Flash实现FPGA远程升级(OTA)的完整方案。通过硬件连接、Vivado工程配置和STM32模拟更新等步骤,帮助开发者告别传统的JTAG烧录方式,实现高效、安全的远程固件更新,特别适用于嵌入式系统开发中的现场维护场景。

weixin_33964987的博客 364

FPGA,关于安装使用libero IDE V9.2 及其gold floating license配置

3、license安装根据,下面的提示进行,跟随setting up the license server on a host教程操作。1、从官网下载Libero IDE v9.2(如下图中的Libero IDE v9.2 software)4、下载完成license解压包后还需要下载 Daemons license ,地址如下。(2)第一行并不是在内填写,而是直接用您电脑名替换掉(1)修改license.bat前四行是,其务必保持和案例位置相同(避免出错)............

JasonK的博客 4300

【前后端数据交互:Axios】

axios前后端数据交互

落雪映青衣的博客 3195

AI报告撰写实战指南:从提示词工程到全流程优化的底层逻辑与实践突破

传统AI写作常被诟病为“信息拼贴”——模型虽能生成文本,却常出现逻辑断裂、数据矛盾、风格不符等问题。而“全流程优化”则是通过系统化设计,将报告生成拆解为需求解析→数据对齐→提示词设计→初稿生成→迭代优化→格式适配六大环节,每个环节均通过技术手段提升输出质量。提示词工程:本质是通过结构化指令(如角色设定、任务分解、格式约束、示例引导)精准控制模型输出方向,是连接用户需求与模型能力的“翻译器”。全流程优化。

2501_92808811的博客 887

Vue+SpringBoot前后端分离教程四:前后端数据交互之Axios

前后端数据交互之Axios一、Axios的安装二、封装Request请求三、前后端数据交互测试 一、Axios的安装 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 库,在vue中相较于Ajax有许多优点,我们接下来就直接介绍如何进行安装。 axios的中文官方文档:http://www.axios-js.com/ yarn 安装命令: yarn add axios 也可以用官网提供的命令安装: npm install --save axios vue-axios

Q1368089323的博客 4694

基于深度学习的电力系统暂态稳定评估与预防控制复现

本文复现了基于深度学习的电力系统暂态稳定评估与预防控制方法。主要内容包括:(1)数据预处理环节,对IEEE 39节点系统的电压幅值、相角等特征数据进行归一化处理;(2)ACNGAT模型实现,该模型结合时间卷积网络(TCN)和图注意力网络(GAT)提取时空特征;(3)采用改进的帝企鹅优化算法进行预防控制。关键技术点包括:融合时空信息的特征提取、改进的邻接矩阵构建方法(λ_ij = E_i * E_j * B_ij)以及时空注意力机制。代码实现采用Python和PyTorch框架。

huanghm88的专栏 336

STM32开发 -- LIS3DH三轴加速度计开发详解

这次要讲一下LIS3DH三轴加速度计的开发使用,之前是有讲过 MPU6050开发 的,但当时是在Linux下做的。额,还是个半成品,哈哈。现在手边有STM32的开发板,可以实实在在的来实现以下卡尔曼滤波了。 一、LIS3DH初识 依照惯例,先看一下手册,大致先了解一下,LIS3DH是什么模块。 下载:LIS3DH datasheet 1、描述 LIS3DH是一款超低功耗高性能三轴线性加速度计,属于...

不积跬步,无以至千里 2万+

axios 前后端数据交互

一直纠结前后端该怎么实现数据的交互,老想不通。关键还是基础太差,看文档不认真。 1.前端显示数据的主要代码: display(){ Axios.get('/api/data-item').then(res=>{ console.log(res); this.data = res.data; }) }, res是我发送请求获取到了的结果,把res.data赋值给this.data 因为我获取到的后台数据在res.data里面,如上

weixin_43502407的博客 2946

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

基于axios前后端数据交互

基于axios前后端数据交互 一、get 1、前端 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript" src="js/axios.js"></script> <script type="text/j

m0_45155436的博客 4597

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

axios-前后端数据交互流程

axios-前后端数据交互流程

qq_52998673的博客 6597

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

安装axios实现前后端数据交互

问题:修改环境变量后无法正确识别路径地址。解决:重启dev,使配置的环境变量生效。前端访问后台跨域连接问题。定义配置文件 .env文件。编写拦截请求js文件。

m0_74299047的博客 378

前后端数据交互的安全性如何保证?为什么要对axios二次封装?token认证流程以及token无感刷新问题?

【代码】1、前后端数据交互的安全性如何保证?2、为什么要对axios二次封装?3、token认证流程以及token无感刷新问题。

2301_80232843的博客 627

告别表单数据转换烦恼:axios formDataToJSON 让前后端数据交互更丝滑

你是否还在为前端表单数据转换为JSON格式而头疼?处理复杂表单结构时,手动拼接数据不仅效率低下,还容易出错。本文将带你深入了解 axios 中的 `formDataToJSON` 工具函数,只需几行代码就能轻松解决表单数据转JSON的难题,让前后端数据交互如丝般顺滑。读完本文,你将掌握表单数据与JSON互转的技巧,解决嵌套数据结构转换问题,并学会在实际项目中灵活应用这一工具。 ## 为什么需要 ...

gitblog_00743的博客 1167

axios前后端数据交互

要是想实现数据交互首先安装axios:        npm install axios --save-dev然后在到vue.js里引入:    import axios from 'axios';一、跨域配置    首先找到config-&gt;index.js文件到里面进行相关配置,进入里面找到proxyTable: {}这个节点:改成下面的代码:   到vue.js里进行跨域访问代码编写  ...

qq_29109193的博客 4282

(九)axios前后端跨域数据交互--基于SpringBoot+MySQL+Vue+ElementUI+Mybatis前后端分离面向小白管理系统搭建

本次任务应用axios,实现前后端跨域数据交互。(1)掌握axios的使用方法,包括全局设置;(2)Element中``对话框使用,并实现数据增加;(3)指定记录删除,以及批量数据删除;(4)Element中``对话框使用,并实现指定记录修改。

wdyan297的博客 7428
上一篇: Vue-cli之http请求代理
下一篇: 解决vue-cli中webpack无法打包js变量中的图片路径
遛狗的代码
博客等级 码龄11年 10粉丝 52原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值