若依前后端分离版本-前后端交互整理

ruoyi-ui与后端交互

方法一:表单

使用 headers: {'Content-Type':'application/x-www-form-urlencoded'},

ruoyi-ui的vue中

//ruoyi-ui的vue中定义
formData: {a: '111',b: '111',c: 1,},
//vue中方法调用              
outBound() {            empty(this.formData).then(response => {})
},

ruoyi-ui的api中

​​​​​​​//ruoyi-ui中js中api
export function empty(data) {const encodedData = qs.stringify(data);return request({url: '/A/info/empty',method: 'post',data: encodedData,headers: {'Content-Type':'application/x-www-form-urlencoded'},})
}

controller方法 


//controller中方法
@RequestMapping("/A/info")
~~~@PreAuthorize("@ss.hasPermi('A:info:remove')")@PostMapping("/empty")public AjaxResult empty( String a, String b, Integer c) {return aInfoService.empty(a, b, c);}

方法二:json

axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'

ruoyi-ui的vue中

//ruoyi-ui的vue中定义
formData: {a: '111',b: '111',c: 1,},
//vue中方法调用				
outBound() {   			empty(this.formData.a,this.formData.b,this.formData.c).then(response => {})
},

 ruoyi-ui的api中

//ruoyi-ui中js中api
export function empty(a,b,c) {return request({url: '/A/info/empty/'+a+'/'+b+'/'+c,method: 'post',})
}

 controller方法 

   //controller中方法
@RequestMapping("/A/info")@PostMapping("/empty/{a}/{b}/{c}")public AjaxResult empty( @PathVariable String a, @PathVariable String b, @PathVariable Integer c) {return aInfoService.empty(a, b, c);}

ruoyi-app与后端交互

方法一:表单

ruoyi-app的vue中

//ruoyi-app的vue中定义
formData: {a: '111',b: '111',c: 1,},
//vue中方法调用				
outBound() {   			empty(this.formData).then(response => {})
},

ruoyi-app的api中 

//ruoyi-app的js中api
export function empty(data) {return request({url: '/A/info/empty',method: 'post',data: data,header : {"Content-Type":"application/x-www-form-urlencoded"}})
}

 controller中

//controller中方法
@RequestMapping("/A/info")
~~~@PreAuthorize("@ss.hasPermi('A:info:remove')")@PostMapping("/empty")public AjaxResult empty( String a, String b, Integer c) {return aInfoService.empty(a, b, c);}

方法二:json-同ui前后端交互

如果想要ruoyi-ui的前后端表单交互与ruoyi-app使用前后端表单交互相同,需要对request.js进行修改

修改ruoyi-ui的request.js

方法一:axios请求配置中提供了transformRequest方法用于发送前修改请求数据

请求配置 | Axios中文文档 | Axios中文网 (axios-http.cn)

创建axios实例后,添加
// 新增
// `transformRequest` 允许在向服务器发送前,修改请求数据
// 它只能用于 'PUT', 'POST' 和 'PATCH' 这几个请求方法
// 数组中最后一个函数必须返回一个字符串, 一个Buffer实例,ArrayBuffer,FormData,或 Stream
service.defaults.transformRequest = [function (data, headers){if (headers['Content-Type'] === 'application/x-www-form-urlencoded') {return typeof data === 'object' ? qs.stringify(data) : data;}if (headers['Content-Type'].includes("application/json")) {return typeof data === 'object' ? JSON.stringify(data) : data;}return data
}]

方法二:request拦截器中添加,用于修改config.data值

import qs from 'qs'
// 【如果是表单类型,判断一下数据是不是对象,如果是对象,则序列化,如果不是对象则直接返回,如果不是表单则直接返回】
//qs.stringify会将对象序列化为 key1=value1&key2=value2&key3=value3形式
config.data = config.headers['Content-Type'] === "application/x-www-form-urlencoded" ?(typeof config.data === 'object' ? qs.stringify(config.data) : config.data) : config.data;

小白一枚,可能有不对的地方~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6款网页表白代码6(附带源码)

6款网页表白代码6 前言效果图及部分源码1.爱心倒计时2.一起看星星3.爱心4.爱心(有鼠标移动特效)5.爱心(高级效果)6.爱心(3D效果) 领取源码下期更新预报 前言 大部分人都有喜欢的人,学会这些表白…

蓝桥杯物联网竞赛_STM32L071KBU6_关于sizo of函数产生的BUG

首先现象是我在用LORA发送信息的时候,左边显示长度是8而右边接收到的数据长度却是4 我以为是OLED显示屏坏了,又或者是我想搞创新用了const char* 类型强制转换数据的原因,结果发现都不是 void Function_SendMsg( unsigned char* data){unsi…

微软Edge

微软Edge浏览器概述 功能介绍 微软Edge是一款基于Chromium开源项目的网页浏览器,旨在提供更快的网页加载速度、更高的安全性和更好的用户体验。它支持多种操作系统,包括Windows、macOS、Android和iOS,能够满足不同用户的需求。Edge浏览器拥…

赶紧收藏!2024 年最常见 20道 Redis面试题(三)

上一篇地址:赶紧收藏!2024 年最常见 20道 Redis面试题(二)-CSDN博客 五、Redis的持久化机制是什么? Redis 是一个高性能的键值存储系统,支持多种类型的数据结构,如字符串、哈希、列表、集合、…

python数据类型之字符串

目录 1.字符串概念和注意事项 2.字符串内置函数 3.字符串的索引、切片和遍历 4.字符串运算符 5.字符串常用方法 性质判断 开头结尾判断 是否存在某个子串 大小写等格式转化 子串替换 删除两端空白字符 格式化字符串 分割与合并 6.字符串模板 7.exec 函数 8.字符…

【Linux】-Zookeeper安装部署[17]

简介 apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 除了为Hadoop和H…

2024最新 Jenkins + Docker 实战教程(四) - 编写自己的Springboot项目实现自动化部署

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

VMware Num Lock 总自动切换的问题解决

VMware Num Lock 总自动切换的问题解决 0. 问题描述1. 解决方法 0. 问题描述 使用 VMware 虚拟机时,鼠标在 VMware 和主机之间切换时,总是显示 “Num Lock 开” 和 “Num Lock 关” 的提示框。 1. 解决方法 在 VMware 系统中,按 fn num 统…

0407放大电路的频率响应

放大电路的频率响应 单时间常数RC电路的频率响应中频响应高频响应低频响应全频域响应 放大电路频率响应概述1. 直接耦合放大电路频域响应阻容耦合放大电路频域响应 4.7.1 单时间常数RC电路的频率响应 4.7.2 放大电路频率响应概述 4.7.3 单级共射极放大电路的频率响应 4.7.4 单级…

TOSHIBA UTLH21 属于Unifi NV系列

TOSHIBA UTLH21 是东芝推出的一款工业控制器,属于Unifi NV系列。 这款控制器代表了东芝在工业自动化领域的一次重要进步,它在功能和性能上都超越了现有的V系列控制器。以下是UTLH21的一些主要特点: 高速逻辑与控制能力:UTLH21具…

Spring框架中获取方法参数名称:DefaultParameterNameDiscoverer

DefaultParameterNameDiscoverer 是Spring框架中用于获取方法参数名称的一个类。在Java中,方法的参数名称通常在编译时会丢失,因为Java字节码并不强制要求保留这些信息。Spring提供了一种机制来恢复这些参数名称,这就是通过DefaultParameterN…

IT行业的现状与未来趋势

这里写目录标题 一、引言二、IT行业的现状三、IT行业面临的挑战四、IT行业的未来趋势五、结论 一、引言 信息技术(IT)行业在过去几十年中经历了飞速发展,从早期的计算机硬件和软件开发,到如今涵盖云计算、人工智能、大数据、物联…

深度学习之基于Django+Tensorflow卷积神经网络实时口罩检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着全球疫情的持续,佩戴口罩成为了公众日常生活中不可或缺的一部分。特别是在人员密集的…

【python】python社交交友平台系统设计与实现(源码+数据库)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

BEVFuison测试全过程记录

cuda版本10.1 pytorch: 根据cuda版本选择pytorch版本: 1. 创建conda虚拟环境: conda create -y --name mmcv python3.8 conda activate mmcv2. 安装依赖库: pytorch: conda install pytorch1.7.1 torchvision0.8.2 torchaudi…

智能代理四大范式解析

Agent四大范式 在2024年红杉资本人工智能峰会上,著名的人工智能专家吴恩达发表了一场备受关注的演讲,深入探讨了智能代理(agent)的四大范式。这四大范式代表了当前AI技术在不同应用领域中的核心方法和实践,分别是反思(Reflection)、工具使用(Tool Use)、规划(Planni…

特征融合篇 | YOLOv8改进之引入轻量级跨尺度特征融合模块CCFM | 源自RT-DETR

前言:Hello大家好,我是小哥谈。CCFM(Cross-Scale Feature Fusion Module)即为跨尺度特征融合模块。这个模块的作用是将不同尺度的特征通过融合操作整合起来,以增强模型对于尺度变化的适应性和对小尺度对象的检测能力。CCFM可以有效地整合细节特征和上下文信息,从而提高模…

2024定制版抢单支付系统源码(开代理自动抢单接单)

随着网络和移动支付技术的不断进步,抢单支付系统已经成为商家和用户进行交易的便利工具。2024定制版抢单支付系统源码为开发者提供了一个可定制化的解决方案,具备开放代理和自动抢单接单功能,帮助用户快速搭建抢单支付平台。本文将为您介绍这…

专题汇编 | ChatGPT引领AIGC新浪潮(一)

ChatGPT的产生与迭代 2022年11月末,美国人工智能研究实验室OpenAI推出ChatGPT。上线的ChatGPT只用了2个月,活跃用户数就突破了1亿,创造了应用增速最快的纪录。 ChatGPT是什么 ChatGPT是一种人工智能技术驱动的自然语言处理(Natural Language Processing,NLP)工具,使用的…

20240520金融读报:旅游强国金融数据要素升级融资性贸易房地产政策变化

1、房地产政策变化:1)刺激买方:降首付,公积金贷款利率下调0.25%,商贷贷款利率不设下限 2)托底卖方:“白名单”贷款项目,覆盖项目建成交付的资金缺口 3)增加卖方&#xff…