Vue2之路由跳转传参中文问题处理

Vue2之路由跳转传参中文问题处理

文章目录

  • Vue2之路由跳转传参中文问题处理
  • 1. 问题描述
    • 1. 当前vue组件
    • 2. 跳转到的vue组件
    • 3. 出现的错误
  • 2. 解决方法
    • 1. 当前vue组件
    • 2. 跳转到的vue组件

1. 问题描述

在el-table中的记录列表中放置了一个 操作按钮,点这个按钮时可以新增一个tab页签,并将通过路由传参方式将一些信息传递到新打开的tab页签中,但发现传递中文参数时会出现 Failed to execute 'setRequestHeader' on 'XMLHttpRequest': String contains non ISO-8859-1 code point.的错误,如下

1. 当前vue组件

<template><div class="app-container"><el-table :data="tableData.records" :key="tableKey" @cell-click="cellClick" size="small"@filter-change="filterChange" @selection-change="onSelectChange" @sort-change="sortChange"border fit row-key="id" ref="table" style="width: 100%;" v-loading="loading"><el-table-column align="center" type="selection" width="40px" column-key="selectionId":reserve-selection="true"/><el-table-column label="模块名" :show-overflow-tooltip="true"align="center" prop="moduleName"width=""><template slot-scope="scope"><span>{{ scope.row.moduleName }}</span></template></el-table-column><!-- ...... --><el-table-columnlabel="操作" align="center" column-key="operation"class-name="small-padding fixed-width"width="180px"><template slot-scope="{ row }"><i@click="handleSetting(row)"class="el-icon-setting table-operation"style="color: #E6A23C"title="设置"/></template></el-table-column></el-table></div>
</template><script>export default {name: "ConfigIndex",data() {return {loading: false};},methods: {/** 设置按钮操作 */handleSetting(row) {console.log(row)const configId = row.id;const moduleName = row.moduleName; //有中文内容,如 "第一个模块"const params = { pageNum: 2,moduleName};//打开新的tab页面  this.$tab.openPage("[" + moduleName + "]模块配置", '/dev/settingsIndex/index/' + configId+"/"+moduleName, params);},}
};
</script>
<style lang="scss" scoped></style>

2. 跳转到的vue组件

<template><div><!-- ...... --></div>
</template><script>
import BasicInfoForm from "@/views/config/BasicInfoForm.vue";
import ConfigApi from "@/api/genConfig.js";export default {name: "SettingsIndex",components: {BasicInfoForm},data() {return {activeName: "basic",info: {generateType: "0"},dbConfig: {}};},created() {//获取路由中传递的参数const routeParams = this.$route.paramsif (routeParams) {this.info.id = routeParams.configIdthis.info.vueModuleName = routeParams.moduleName}}};
</script>

3. 出现的错误

  1. 信息提示

在这里插入图片描述

  1. 浏览器控制台打印
xhr.js:126  Uncaught (in promise) TypeError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': String contains non ISO-8859-1 code point.at setRequestHeader (xhr.js:126:1)at Object.forEach (utils.js:238:1)at dispatchXhrRequest (xhr.js:120:1)at new Promise (<anonymous>)at xhrAdapter (xhr.js:12:1)at dispatchRequest (dispatchRequest.js:52:1)

2. 解决方法

原因是在前端跳转页面时,url参数中的内容出现了中文。要解决此问题必须对传递中文字符的参数值进行编码,在接收到参数后再对其进行解码即可解决。

JS中通过下面两个方法进行编码与解码操作

  • 编码:encodeURIComponent(str)
  • 解码:decodeURIComponent(str)

1. 当前vue组件

<template><div class="app-container"><el-table :data="tableData.records" :key="tableKey" @cell-click="cellClick" size="small"@filter-change="filterChange" @selection-change="onSelectChange" @sort-change="sortChange"border fit row-key="id" ref="table" style="width: 100%;" v-loading="loading"><el-table-column align="center" type="selection" width="40px" column-key="selectionId":reserve-selection="true"/><el-table-column label="模块名" :show-overflow-tooltip="true"align="center" prop="moduleName"width=""><template slot-scope="scope"><span>{{ scope.row.moduleName }}</span></template></el-table-column><!-- ...... --><el-table-columnlabel="操作" align="center" column-key="operation"class-name="small-padding fixed-width"width="180px"><template slot-scope="{ row }"><i@click="handleSetting(row)"class="el-icon-setting table-operation"style="color: #E6A23C"title="设置"/></template></el-table-column></el-table></div>
</template><script>export default {name: "ConfigIndex",data() {return {loading: false};},methods: {/** 设置按钮操作 */handleSetting(row) {console.log(row)const configId = row.id;const moduleName = row.moduleName; //有中文内容,如 "第一个模块"const params = { pageNum: 2,moduleName};//打开新的tab页面,并对URL中的  moduleName 通过 encodeURIComponent(moduleName)进行编码,解决中文问题this.$tab.openPage("[" + moduleName + "]模块生成配置", '/tool/genSettingsIndex/index/' +configId+"/"+ encodeURIComponent(moduleName), params);},}
};
</script>
<style lang="scss" scoped></style>

2. 跳转到的vue组件

<template><div><!-- ...... --></div>
</template><script>
import BasicInfoForm from "@/views/config/BasicInfoForm.vue";
import ConfigApi from "@/api/genConfig.js";export default {name: "SettingsIndex",components: {BasicInfoForm},data() {return {activeName: "basic",info: {generateType: "0"},dbConfig: {}};},created() {console.log("created====")//获取路由中传递的参数const routeParams = this.$route.paramsif (routeParams) {this.info.id = routeParams.configId//这里通过  decodeURIComponent(routeParams.moduleName) 对路由中的moduleName参数值进行解码,解决中文问题this.info.vueModuleName = decodeURIComponent(routeParams.moduleName)}}};
</script>

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

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

相关文章

RabbitMQ之基础入门

在 AMQP 中&#xff0c;Producer 将消息发送到 Exchange &#xff0c;再由 Exchange 将消息路由到一个或多个 Queue 中&#xff08;或者丢弃&#xff09;。Exchange 根据 Routing Key 和 Binding Key 将消息路由到 Queue &#xff0c;目前提供了 Direct、Topic、Fanout、Header…

github提交不了的问题

开了VPN提交的时候提示这个报错 是需要这两个端口号一致&#xff0c;就能提交了

线程池

文章目录 普通线程池自定义线程池 普通线程池 //创建线程池&#xff0c;不指定上限 ExecutorService pool1 Executors.newCachedThreadPool(); //创建线程池&#xff0c;指定上限 ExecutorService pool1 Executors.newFixedThreadPool(5); --------------------------------…

Material Studio 计算分子静电力、电荷密度以及差分电荷密度

1.先打开Material Studio导入要计算的分子cif文件或者mol文件&#xff0c;直接Flie-Import 2.高斯几何优化一下结构&#xff0c;参数按照我的设置就行&#xff0c;一般通用&#xff0c;后面出问题再调整 3.点完Run后会跳出很多计算过程&#xff0c;不用管&#xff0c;等他计算完…

【FL常用插件#1】Ozone11臭氧的安装和使用

本文内容收集自互联网&#xff0c;仅供个人学习参考使用&#xff0c;不允许用于商业用途&#xff0c;造成的侵权行为与本文作者无关 安装 VST2、VST3、AAX和NKS是音频技术界常见的几种插件格式&#xff0c;它们在功能和兼容性上有所不同&#xff1a; VST2 (Virtual Studio Tec…

python环境下labelImg图片标注工具的使用

labelimg GitHub地址 python环境下labelImg图片标注工具的使用 1. 写在开头2. 如何使用2.1安装2.2 启动2.2.1 先启动后设置标注的目录2.2.2 指定标注的目录和预设置的标签 2.3 设置自动保存和显示类别。2.4 保存文件类型2.5 [快捷键](https://github.com/HumanSignal/labelImg…

FastDFS-单机扩容

描述 周一上班收到用户反馈系统异常&#xff0c;紧急排查日志发现报错&#xff1a;FdfsServerException:错误:28&#xff0c;错误信息:没有足够的存储空间。 解决 根据异常信息判断是文件服务器可用内存不够了&#xff0c;首先登录文件服务器&#xff0c;使用df -h命令查看一…

5.合并两个有序数组

文章目录 题目简介题目解答解法一 &#xff1a;合并后排序解法二&#xff1a;双指针排序 题目链接 大家好&#xff0c;我是晓星航。今天为大家带来的是 合并两个有序数组 相关的讲解&#xff01;&#x1f600; 题目简介 题目解答 解法一 &#xff1a;合并后排序 假设我们要合…

NXP i.MX8系列平台开发讲解 - 3.11 Linux PCIe设备调试(WIFI模块)

专栏文章目录传送门&#xff1a;返回专栏目录 文章目录 目录 1. WIFI 模块简单介绍 2. 设备驱动原理介绍 3. PCIE WIFI驱动实例分析 3.1 查看设备树 3.2 wifi 设备驱动代码分析 3.3 内核配置选项 4. WIFI驱动调试相关 根据前面对PCIe的讲解&#xff0c;对PCIe的整体都有…

练习题(2024/5/7)

1验证二叉搜索树 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左 子树 只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 …

c++ cpp 在类中执行线程 进行恒定计算

在编程中&#xff0c;顺序执行是常见的模式&#xff0c;但是对cpu的利用率不是很高&#xff0c;采用线程池&#xff0c;又太麻烦了&#xff0c;原因是还得不断地把任务拆分&#xff0c;扫描返回值。 如果 初始化n个类的时候&#xff0c;传递数据自身即可异步计算&#xff0c;那…

JavaWEB 框架安全:Spring 漏洞序列.(CVE-2022-22965)

什么叫 Spring 框架. Spring 框架是一个用于构建企业级应用程序的开源框架。它提供了一种全面的编程和配置模型&#xff0c;可以简化应用程序的开发过程。Spring 框架的核心特性包括依赖注入&#xff08;Dependency Injection&#xff09;、面向切面编程&#xff08;Aspect-Or…

AIGC绘画辅助网站

Midjourney风格样式 Midjourney Style Classifier | Andrei Kovalevs Midlibrary

124.反转链表(力扣)

题目描述 代码解决&#xff08;思路1&#xff1a;双指针&#xff09; class Solution { public:ListNode* reverseList(ListNode* head) {ListNode*temp;//保存cur下一个节点ListNode*curhead;ListNode*preNULL;while(cur){tempcur->next;// 保存一下 cur的下一个节点&#…

接口自动化测试的最佳实践和常见错误!

引言&#xff1a; 随着软件开发的不断演进&#xff0c;接口自动化测试在软件质量保障的过程中扮演着越来越重要的角色。良好的接口自动化测试可以提升测试效率、减少人力成本&#xff0c;但同时也存在着一些常见错误。本文将从零到一详细介绍接口自动化测试的最佳实践和常见错…

突破传统 重新定义:3D医学影像PACS系统源码(包含RIS放射信息)实现三维重建与还原

突破传统&#xff0c;重新定义PACS/RIS服务,洞察用户需求&#xff0c;关注应用场景&#xff0c;新一代PACS/RIS系统&#xff0c;系统顶层设计采用集中分布式架构&#xff0c;满足医院影像全流程业务运行,同时各模块均可独立部署&#xff0c;满足医院未来影像信息化扩展新需求、…

Ecovadis认证是什么?

Ecovadis认证是一种企业社会责任&#xff08;CSR&#xff09;评估和评级的认证&#xff0c;旨在衡量企业在环境、劳工和人权、道德以及可持续采购四个方面的可持续发展表现。该认证已成为全球范围内许多公司和组织的评估标准之一&#xff0c;有助于提高企业的会声誉和可持续发展…

Linux专栏10:Linux权限详解(上)

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Linux专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Linux权限详解&#xff08;上&#xff09; 编号&#xff1a;10 文章…

商务分析方法与工具(四):Python的趣味快捷-简单函数你真的会用吗?

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

SolidWorks进行热力学有限元分析一、模型建立

1.话不多说按照我的操作来 2.这一步鼠标移到中心点直接拉就行 3.这里选单位&#xff0c;继续按照操作来 4.选中这个边&#xff0c;直接拉&#xff0c;输入尺寸后确定&#xff0c;其他边同理 5.鼠标右键设置厚度 6.右键零件&#xff0c;然后编辑材料&#xff0c;给他赋予你需要的…