Vue中GET请求如何正确传递数组参数?

Vue中GET请求如何正确传递数组参数?

vue.js get请求中正确传递数组参数

在使用Vue.js和axios进行GET请求时,直接传递数组参数可能会导致java.lang.IllegalArgumentException: Invalid character found in the request target异常。这是因为GET请求参数直接拼接在URL中,而数组格式不符合URL规范。本文将演示如何正确处理这种情况。

问题:

前端使用axios.get向后端/searchRoomTags接口发送GET请求,roomTags参数为数组。后端使用Spring Boot,使用@RequestParam String[] roomTags接收参数。直接传递数组导致请求解析失败。

错误代码(前端):

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

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

错误代码(后端):

@GetMapping("/searchRoomTags")public 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      }    })    // ...

修改后的后端代码:

@GetMapping("/searchRoomTags")public PageInfo searchRoomTags(@RequestParam String roomTags, Rooms room, HttpServletRequest request) {    String[] tagsArray = roomTags.split(","); // 使用逗号分割字符串    // ... 使用 tagsArray}

此方案将roomTags数组转换为逗号分隔的字符串。后端接收字符串参数,再用逗号分割成数组。 选择的分隔符(这里用逗号)必须确保不会出现在数组元素中,否则需要选择其他分隔符,并前后端保持一致。 如果数组元素可能包含逗号,建议使用URL编码对元素进行编码后再拼接。

通过以上修改,可以确保GET请求中数组参数的正确传递,避免java.lang.IllegalArgumentException异常。 记住,前后端的分隔符必须一致。

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何在macOS系统的iOS模拟器中安装飞书、钉钉等应用?
上一篇 2025年12月22日 06:51:01
B站网页load事件为何多次触发?如何可靠判断网页加载完成?
下一篇 2025年12月22日 06:51:12

相关推荐

  • Vue项目部署测试环境SockJS-Node跨域问题:为什么本地运行正常,部署后却报错?

    Vue项目部署测试环境,SockJS-Node跨域问题详解及解决方案 在Vue项目中,使用SockJS-Node进行实时通信时,部署到测试环境后常出现跨域问题。本文分析一个典型案例:本地运行正常,但部署到测试环境(10.181.12.125:30016)后,访问http://localhost:80…

    2026年8月30日
    100
  • 非Vue项目中,如何使用vue-quill-editor实现纯文本粘贴?

    非Vue项目中巧妙运用vue-quill-editor实现纯文本粘贴 在非Vue项目中使用vue-quill-editor时,如何将粘贴的富文本转换为纯文本并保持光标位置正确,是许多开发者面临的挑战。本文将详细讲解如何在普通JavaScript项目中,结合quill.js、vue-quill-edi…

    2026年8月30日
    100
  • laravel开发过哪些网站

    Laravel 是一种用于开发各种 web 应用程序的流行 PHP 框架。使用 Laravel 开发的知名网站包括:新闻网站和博客:The New Digital、Laravel News、Vue.js Developers社交媒体平台:Laracasts、Axentria、Travelouge电子…

    2026年8月30日
    100
  • 非Vue项目中如何使用vue-quill-editor实现纯文本粘贴?

    在非Vue项目中使用vue-quill-editor实现纯文本粘贴 本文介绍如何在非Vue项目中,利用vue-quill-editor组件实现纯文本粘贴功能,避免粘贴富文本带来的格式干扰。 关键在于如何拦截粘贴事件,并确保纯文本内容正确插入到编辑器中,即使光标位置已存在样式。 最初尝试在mounte…

    2026年8月30日
    200
  • Vue3项目编辑页返回列表页数据不更新怎么办

    Vue3项目:编辑页返回列表页,数据不更新的解决方案 在Vue3项目中,从列表页跳转到编辑页修改数据后返回,列表页数据却未更新,是常见问题。本文将分析原因并提供解决方案。 问题描述: 假设项目包含角色列表页和角色编辑页。列表页使用onMounted获取角色数据。点击“编辑”跳转到编辑页,修改后返回列…

    2026年8月30日
    000
  • VSCode怎么打出基本代码_VSCode使用代码片段快速生成基础结构教程

    VSCode通过内置、自定义和扩展三种方式实现代码片段快速生成,提升开发效率。使用内置片段如html:5或log可一键生成常用结构;通过“Configure User Snippets”创建自定义片段,如用rfc生成React函数组件,并利用$1、$2等占位符实现光标跳转与同步编辑;安装高评分扩展如…

    2026年8月30日
    300
  • Vue 3如何构建复杂的审批表单?

    在Vue 3中构建复杂的审批流程表单 许多Vue 3开发者都面临构建复杂审批表单的挑战,例如图中所示的多步骤、多状态、多审批人表单。这类表单需要处理复杂的业务逻辑,包括状态转换、数据验证、权限控制等。那么,Vue 3生态系统中是否有现成的组件能够直接满足这种需求呢? 答案是否定的。虽然Element…

    2026年8月30日
    700
  • 如何在Java Web应用中安全地执行Shell脚本和SQL语句并持久化数据?

    Java Web应用中安全执行Shell脚本和SQL语句及数据持久化 本文探讨如何在Java Web应用中安全地执行用户提交的Shell脚本和SQL语句,并持久化相关数据到数据库。这是一个高风险任务,需要严谨的安全策略。 核心需求是:构建一个网页界面,允许用户输入Shell脚本和SQL语句,服务器端…

    2026年8月29日
    000
  • 如何在Java Web应用中安全地执行Shell脚本和SQL语句并持久化结果?

    在Java Web应用中安全地执行Shell脚本和SQL语句并持久化结果,是一个需要谨慎处理的复杂需求。本文将探讨如何在兼顾便利性的同时,最大限度地降低安全风险。 系统架构包含前端、后端和数据库三个部分。前端(例如,使用Vue.js)提供用户界面,允许用户输入Shell脚本和SQL语句,并通过Axi…

    2026年8月29日
    000
  • 移动端APP+小程序混合开发方案

    在企业面临快速触达用户与控制开发成本的双重挑战下,单一的移动端app或小程序开发方式往往难以兼顾两者。此时,“移动端app+小程序混合开发”方案应运而生,成为众多企业在平衡用户体验与业务效率上的智慧之选。 一、 混合开发的核心优势:融合多方优点 1. 成本与效率优化: 代码复用:核心逻辑、数据模型和…

    2026年8月28日
    100
  • Laravel + Vue.js 开发单页面应用(SPA)教程

    使用laravel和vue.js可以构建单页面应用(spa)。1)在laravel中定义api路由和控制器,处理数据逻辑。2)在vue.js中创建组件化前端,实现用户界面和数据交互。3)配置cors和使用axios进行数据交互。4)利用vue router实现路由管理,提升用户体验。 引言 在现代W…

    2026年8月28日
    100
  • 如何在切换页面路由时解决阿里云滑块验证码的报错问题?

    阿里云滑块验证码在页面路由切换时报错的解决方案 集成阿里云滑块验证码时,在切换页面路由(例如 this.router(“/push”))时,可能会遇到 uncaught (in promise) typeerror: cannot read properties of null (reading ‘…

    2026年8月27日
    200
  • Vite 打包后私有变量无法赋值的原因是什么?如何解决?

    Vite 打包后私有变量赋值问题及解决方案 本文分析在使用 Vite 构建 Vue 项目时,私有类成员变量在打包后无法正确赋值的问题,并提供解决方案。 问题描述: 在开发环境下,使用 Vite 和 Vue (版本:Vite ^5.2.8, Vue ^3.4.21) 开发的项目中,私有类成员变量可以正…

    2026年8月27日
    100
  • 抖店免密登录失败提示网络错误:如何正确模拟登录?

    Electron+Vue框架下抖店免密登录及网络错误解决方案 许多开发者尝试利用Cookie实现抖店免密登录,以提升用户体验。本文针对使用Electron+Vue前端框架,通过webview加载抖店网页,并使用数据库存储Cookie进行免密登录时遇到的网络错误问题进行分析和解答。 问题:即使从数据库…

    2026年8月27日
    100
  • VSCode写前端怎么调试_VSCode前端代码调试与浏览器联动教程

    答案是通过配置VSCode的launch.json文件实现前端代码与浏览器的联动调试。具体需在项目根目录下创建.vscode/launch.json,设置type为pwa-chrome或pwa-msedge,request为launch或attach,指定url为本地开发服务器地址如http://l…

    2026年8月27日
    500
  • Laravel的广播(Broadcasting)系统如何实现实时功能?

    laravel的广播系统通过与前端框架结合,使用websocket技术实现实时功能。具体步骤包括:1. 在laravel项目中安装并配置广播功能;2. 在eventserviceprovider中定义广播事件;3. 定义实现shouldbroadcast接口的事件;4. 在前端使用laravel-e…

    2026年8月27日
    100
  • Laravel与Inertia.js构建SPA应用

    laravel和inertia.js结合使用强大是因为:1)laravel提供强大的后端功能,2)inertia.js简化前端开发,3)无需前后端分离。通过合理使用inertia.js的功能,可以构建出性能优异、用户体验良好的单页应用。 Laravel和Inertia.js结合使用,可以构建出高效且…

    2026年8月27日
    100
  • 在若依框架中如何找到和配置MyBatis依赖?

    在若依框架(ruoyi-vue)中配置和查找mybatis依赖是开发过程中常见的问题,尤其对于新手开发者。本文将详细说明如何在若依框架中找到并引入mybatis依赖。 在若依框架的项目结构中,MyBatis依赖通常是通过Maven管理的,具体会在项目的pom.xml文件中定义。根据提供的信息,我们可…

    2026年8月27日
    000
  • Yii框架的未来发展趋势预测

    yii框架未来的发展趋势包括:1. 更加轻量化和模块化,2. 更好的性能优化,3. 增强安全性,4. 更好的开发者体验,5. 与前端框架的更好集成。这些趋势将使yii在现代web开发中更具竞争力。 对于Yii框架未来的发展趋势,有没有一些具体的预测和建议? 在探讨Yii框架未来的发展趋势之前,让我们…

    2026年8月26日
    000
  • 抖音小程序是用什么语音做的

    抖音小程序由字节跳动自主研发,基于其自有的“字节跳动小程序”技术框架构建。该框架在设计上借鉴了微信小程序的开发模式,同时融合了平台自身的特点与需求。开发者可通过 JavaScript、HTML 和 CSS 完成前端界面与逻辑开发,后端则可灵活选用多种服务端语言和技术进行对接。 抖音小程序的技术架构解…

    2026年8月25日
    100

发表回复

登录后才能评论
关注微信