Vue axios GET请求:如何正确传递数组参数到后端?

Vue axios GET请求:如何正确传递数组参数到后端?

本文探讨在vue项目中,如何使用axios发送get请求并正确传递数组参数到spring boot后端的问题。 直接将数组作为get请求参数会引发java.lang.illegalargumentexception: invalid character found in the request target错误,因为get请求参数必须是键值对形式。

问题:前端使用axios发送GET请求到/searchRoomTags接口,传递包含this.searchRoomTags数组的params。后端使用@RequestParam String[] roomTags接收参数。

前端代码(错误示例):

this.$axios    .get('/searchRoomTags', {      params: {        pageSize: this.roomPageInfo.pageSize,        roomType: encodeURI(this.roomForm.roomType),        roomTags: this.searchRoomTags, // 错误:直接传递数组        roomState: this.searchContent      }    })    // ...

后端代码:

@CrossOrigin@GetMapping("/searchRoomTags")@ResponseBodypublic PageInfo searchRoomTags(@RequestParam String[] roomTags, Rooms room, HttpServletRequest request) {    // ...}

解决方案:将数组转换为逗号分隔的字符串。

立即学习“前端免费学习笔记(深入)”;

修改后的前端代码:

this.$axios    .get('/searchRoomTags', {      params: {        pageSize: this.roomPageInfo.pageSize,        roomType: encodeURI(this.roomForm.roomType),        roomTags: (this.searchRoomTags || []).join(','), // 正确:转换为逗号分隔字符串        roomState: this.searchContent      }    })    // ...

(this.searchRoomTags || []).join(',') 处理了this.searchRoomTags为空的情况,避免错误。 后端代码无需修改,可以直接使用String[] roomTags接收参数,然后自行分割字符串。 这种方法确保了URL格式正确,避免了无效字符的出现。

通过将数组转换为字符串,有效解决了GET请求传递数组参数的问题,实现了前端和后端的正确数据交互。

以上就是Vue axios GET请求:如何正确传递数组参数到后端?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1561793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月22日 06:49:54
下一篇 2025年12月22日 06:50:00

相关推荐

  • JavaScript语法每年都在更新吗?

    javascript语法:持续演进的动态语言 JavaScript的语法变化之快,常常让开发者,尤其是从其他语言转过来的开发者感到困惑。 例如,从jQuery到Vue.js的学习过程中,开发者会明显感受到ES6前后在类和函数方面的巨大差异。有人甚至将JavaScript与PHP进行比较,认为它似乎借…

    2025年12月22日
    000
  • 前端如何实现批量导出PDF文件且无需跳转页面?

    前端批量导出pdf:高效方案及技术选型 许多前端应用需要实现批量导出数据为PDF的功能,传统方法通常是逐条记录导出,并跳转到新页面预览。然而,对于多选批量导出且无需页面跳转的需求,该如何高效实现呢?本文将探讨几种方案,并推荐最优解。 现有单条记录导出方法通常是点击ID,调用后端接口获取数据生成PDF…

    2025年12月22日
    000
  • 前端批量导出PDF:如何高效实现多条记录的PDF文件下载?

    高效实现前端多条记录pdf批量导出 前端开发中,常需导出PDF。以往单条记录导出可通过跳转新页面实现,但现需支持多选批量导出,且无需页面预览,直接下载所有选中记录的PDF,并保持与单条记录详情页一致的布局格式。如何高效实现? 本文探讨两种方案: 方案一:iframe嵌套展示PDF (适用需页面展示P…

    2025年12月22日
    000
  • 前端批量导出PDF:iframe嵌套还是直接下载更优?

    前端批量导出pdf:iframe嵌套还是直接下载更佳? 许多前端应用需要实现批量导出PDF的功能,例如从列表中选择多条记录,一键导出对应的PDF文件。本文将探讨如何优化单条记录导出PDF到批量导出PDF的方案。 现有系统点击单条记录跳转新页面,通过ID获取数据生成PDF。 现在需要实现多选批量导出,…

    2025年12月22日
    000
  • Vue3中template标签内的#title属性有什么作用?

    vue3 中 标签内的 #title 属性有什么作用? 在 Vue3 项目中,我们经常会看到 标签中使用 # 符号,例如 #title。这引起了很多开发者的疑问。 其实, 等同于 ,它是一个作用域插槽 (Scoped Slot)。作用域插槽允许我们向父组件传递内容,并且只能在父组件的范围内使用。 具…

    2025年12月22日
    000
  • Nuxt框架下,如何实现鼠标悬浮缩略图时,图片和文字从右向左平滑过渡?

    使用nuxt.js实现鼠标悬停缩略图时图片和文字从右向左平滑过渡效果 本文介绍如何在Nuxt.js框架下,实现鼠标悬停在缩略图上时,图片和文字从右侧平滑过渡到左侧的效果。 现有功能及需求改进 目前已实现鼠标悬停缩略图更新原图和描述文字的功能。 现在需要进一步优化用户体验,使过渡过程更加流畅自然,通过…

    2025年12月22日
    000
  • Vue3中template标签的#title属性是做什么的?

    vue3项目中template标签的#title属性详解 在Vue3项目中,template标签有时会包含一个#title属性,这在使用Element UI的和组件时尤其常见。 #title属性并非什么特殊字符,它实际上是v-slot:title的简写形式,用于定义组件的具名插槽内容。 例如,构建一…

    2025年12月22日
    000
  • Vue.js中el-tree组件空格被忽略:原因及white-space解决方案?

    vue.js 组件空格丢失问题及解决方案 在使用 Vue.js 的 组件时,有时会遇到节点文本中的空格被忽略的问题,导致显示效果异常。本文将分析其原因并提供有效的解决方案。 HTML 默认会将多个连续空格视为一个空格,这是导致此问题的主要原因。 一些常见的尝试,例如使用 {{data.treeNam…

    2025年12月22日
    000
  • Vue3中“的作用是什么?

    深入理解vue3脚手架中标签的妙用 在Vue3脚手架项目中,并非普通的HTML模板元素,它扮演着定制el-menu或el-submenu组件标题的关键角色。其主要应用场景是为导航菜单中的菜单项创建个性化标题。 语法示例 以下代码片段展示了在实际项目中的运用: {{ item.title }} ……

    2025年12月22日
    000
  • Spring Boot和JPARepository如何实现简单的用户登录功能?

    本文将演示如何使用spring boot和jparepository构建一个简单的用户登录界面。 一、前端界面(login.html) 以下代码片段展示了一个基本的登录表单,你需要将其嵌入到你的Spring Boot项目中,并根据你的项目结构进行调整路径。 用户登录 用户登录 用户名: 密码: 二、…

    2025年12月22日
    000
  • Vue3中innerHTML无法渲染图片怎么办?

    vue3 使用 innerhtml 渲染图片问题及解决方案 在Vue3中,直接使用innerHTML可能会导致图片无法正常显示。 这里提供两种有效的解决方法: 方法一:利用动态组件 通过v-html指令结合动态组件,可以更安全有效地渲染包含图片的HTML内容。 这种方法避免了直接操作innerHTM…

    2025年12月22日
    000
  • Vue.js中template #title属性究竟是什么?

    深入理解vue.js中template #title属性 在Vue.js应用中,标签结合#title属性,提供了一种简洁的方式来定义和渲染组件的具名插槽(slot)。这在构建可复用组件时非常有用,允许开发者自定义组件内部特定部分的内容。 以下代码片段展示了在组件中的应用: {{ item.title…

    2025年12月22日
    000
  • Vue3中插槽是如何定义组件标题的?

    vue3组件标题:利用插槽自定义 Vue3项目中,我们可以通过标签结合插槽机制灵活定义组件标题。 特别地,#title属性(或等效的v-slot:title)用于指定一个用于渲染组件标题的插槽。 以下代码片段展示了如何使用定义嵌套菜单项的标题: {{ item.title }} 这段代码等同于: {…

    2025年12月22日
    000
  • Vue el-tree组件中,字符串空格被忽略了,如何解决?

    vue el-tree组件中字符串空格丢失的解决方法 在使用Element UI的el-tree组件时,您可能会遇到字符串中的空格被忽略的问题。本文将分析问题原因并提供有效的解决方案。 问题描述:在el-tree组件的节点文本中,空格字符没有正确显示,导致文本内容显示异常。 尝试过的无效方法: 使用…

    2025年12月22日
    000
  • Vue 3中用innerHTML渲染图片失败了,怎么办?

    解决vue 3中使用innerhtml渲染图片失败的问题 在Vue 3应用中,如果使用innerHTML渲染用户提交的消息时,图片无法显示,可以使用以下方法解决: 1. 优先使用v-html指令,并进行安全处理: 直接使用v-html指令比innerHTML更安全,但仍然需要谨慎处理用户输入,避免X…

    2025年12月22日
    000
  • Nuxt.js中如何实现鼠标悬停触发图片与描述文字从右向左滑动的效果?

    nuxt.js实现鼠标悬停图片及描述文字左右滑动效果 本文介绍如何在Nuxt.js项目中,实现鼠标悬停在缩略图上时,缩略图、原图和描述文字从右向左滑动的效果。我们将使用Swiper插件来完成此功能,因为它功能强大且易于定制。 解决方案:使用Swiper插件 Swiper是一个流行的JavaScrip…

    2025年12月22日
    000
  • 单页应用中:如何用锚标签实现页面跳转并精准定位目标段落?

    单页应用锚点跳转及精准定位:解决页面不滚动的难题 在采用history模式的单页应用中,单纯使用标签跳转锚点并不能自动滚动到目标段落。这是因为history模式下,页面不会刷新。为了实现点击锚点后自动滚动到指定位置,我们需要借助前端框架或第三方库。 解决方法: 监听锚点点击事件:使用Vue、Reac…

    2025年12月22日
    000
  • Vue3中innerHTML渲染图片失败怎么办?

    vue3中innerhtml渲染图片失败?试试这些方法! 在Vue3项目中,直接用innerHTML渲染图片有时会遇到显示失败的问题。别担心,以下几种方法可以帮你解决这个问题: 方法一:巧用动态组件 放弃innerHTML,改用Vue的动态组件机制来渲染图片。代码示例如下: import { def…

    2025年12月22日
    000
  • Vue3中使用innerHTML渲染图片失败怎么办?

    解决vue3中innerhtml渲染图片失败的问题 在Vue3中使用innerHTML渲染图片时,经常会遇到图片无法显示的问题。这是因为Vue无法直接解析innerHTML中的动态内容。以下提供两种有效的解决方法: 方法一:使用动态组件 利用Vue的组件化优势,将图片渲染为一个动态组件。通过v-bi…

    2025年12月22日
    000
  • Vue.js Element Tree组件中树节点名称空格丢失如何解决?

    vue.js element tree组件:解决树节点名称空格丢失问题 本文分析并解决了一个在Vue.js应用中使用Element UI Tree组件时遇到的问题:树节点名称中的空格丢失。 问题描述 在使用el-tree组件显示树节点名称(例如,从data.treeName获取)时,发现空格被忽略,…

    2025年12月22日
    000

发表回复

登录后才能评论
关注微信