Ruoyi 前后端分离版POST发送表单

Ruoyi 前后端分离版POST发送表单

在若依的前后端分离版本中,如果前端向后端发送请求,使用默认的request()方法,则默认发送Content-Type:application/json类型的数据,例如:

export function addData(data) {
  return request({
    url: '/add',
    method: 'post',
    data: data
  })
}

想要发送application/x-www-form-urlencoded表单数据,需要手动指定headersContent-Typeapplication/x-www-form-urlencoded,且需要将数据处理为key=value&key=value形式的字符串。

将数据处理为key=value&key=value形式的字符串的方式有两种:

  1. 将数据处理成key=value&key=value形式的字符串后传入request()方法(影响范围小)
    使用axios库内置的qs模块中的qs.stringify()方法,将传入的数据处理成字符串。
    例如:
import qs from 'qs' // 如果axios库未内置qs模块,需单独引入
function demo() {
  let user = {
  	name:"tom",
  	userId:123
  	}
  const encodedData = qs.stringify(user);
  // encodeData:"name=tom&userId=123"
  return request({
    url: '/user',
    method: 'post',
    headers:{
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    data: encodedData,
  })
}
  1. request()方法中转换(比较彻底,推荐!)
    首先,打开request.js文件中,添加对qs的引用
import qs from 'qs'

然后在下图中的位置添加这些代码
插入位置

 // 添加对application/x-www-form-urlencoded类型请求的预处理
service.defaults.transformRequest = [function (data, headers) {
  if (headers['Content-Type'].includes('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
}]

后端接受表单数据的示例代码:

@PostMapping("/user")
public Result user(String name, int userId) {
  // 处理请求数据
  // ...
  return Result.success();
}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
RuoYi是一个基于Spring Boot和Vue.js的开源框架,它采用前后端分离的架构设计,实现了数据前后端分离开发。在RuoYi中,通过前后端分离的方式,可以实现导出功能。 首先,前端负责显示数据的页面布局和交互操作。在前端页面中,可以通过调用后端接口获取需要导出的数据,并将其展示在页面上。在需要导出的地方,可以添加一个导出按钮或其他触发事件的组件,通过点击按钮或触发事件的方式,调用后端接口进行导出操作。 其次,后端负责处理导出的相关逻辑。在RuoYi的后端代码中,通常会有一个导出的控制层,负责接收前端的导出请求,并进行相应的数据处理和导出操作。后端可以通过调用某些工具类或第三方库来生成导出文件,如使用Apache POI库生成Excel文件、使用iText或PDFBox库生成PDF文件等。 最后,导出的结果可以返回给前端进行下载或其他操作。后端处理完导出逻辑后,可以将生成的导出文件保存到服务器的某个位置,然后将文件的路径返回给前端。前端根据返回的文件路径,可以通过下载链接或其他方式提供给用户进行文件下载。 总结来说,RuoYi采用前后端分离的架构,通过前端调用后端接口来实现数据的导出。在前端页面中,添加导出按钮或触发事件的组件,通过点击或触发事件的方式调用后端接口。后端处理导出逻辑后,生成导出文件并保存,然后将文件路径返回给前端进行下载或其他操作。这样可以实现RuoYi前后端分离导出功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星期五Plus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值