【前端】vue项目 url中传递数组参数

【问题情景】

我在项目中使用了一个iframe,引入另一个项目,想通过动态修改iframe的src使iframe中的页面动态展示,在这个过程中,我碰到了一个问题,就是我往url传递数组参数的时候,接受到的是[object object],这使我读不出我传递的参数。但是我百度谷歌了一把,都没有找到很好的解决方案。下面附上我的解决方案。

【解决方案】

  传递参数的页面

let testArray = [{a:1},{b:2},{c:3}];
let testStr = encodeURIComponent(JSON.stringify(footerData));
iframeSrc = "http://www.123.com/#/creditCon?testStr=" + testStr 

  接收参数的页面

let testArray = JSON.parse(this.$route.query.footerData)

【方案解释】

  下面来解释一下这几行代码,

  首先是let一个数组,这个数组是我要传递给另一个页面的参数,如果直接传就会变成[object object],所以我们需要通过JSON.stringify(数组)来把这个数组变成一个字符串,把它变成字符串后,如果直接传递,正常来说是没有问题的,但是当我们碰到有特殊符号的时候,比方说我们其中有一个数据是一串网址,那转换就会遇到问题,所以我们需要使encodeURIComponent()函数把转换出来的字符串进行编码,encodeURIComponent()函数可把字符串作为URI 组件进行编码,该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ‘ ( ) ,这样我们就能得到我们想要的字符串了。

  因为我们是把数组变成了字符串传过去的,所以我们在接收到这个字符串的时候,需要对它进行JSON.parse()转成我们要的数组。

时间: 2024-12-08 17:56:40

【前端】vue项目 url中传递数组参数的相关文章

js的url中传递中文参数乱码,如何获取url中参数问题

一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript”> function send(){ var url = "test01.html"; var userName = $("#userName").html(); window.open(encodeURI(url + "?userName="

C/C++中传递数组参数的问题

我真是太菜了,本来我是今天打算好好搞搞dynamic_programming一系列的经典问题,结果只是停留在把数组连乘的原理给看懂了而已. 原因嘛: 1.当我想要动手实现时,为了给函数和变量起个专业点儿的名字,特意去看了一些细节的命名规范问题: 2.呦西,命名规范解决了,但是名字怎么取才能看起来逼格高一些呢,不是说好的代码不需要注释,只看命名就行了么.然后我发现我想表达的变量名字对应的单词我不会,于是我又去查单词了: 3.呦西+1,命名总算搞定了,但是这个参考代码里面,传递参数为什么用vecto

java基础知识 学习 关于URL中传递的参数含有特殊字符

有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码                                             1. +        URL 中+号表示空格     %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. /      分隔目录和子目录            %2F 4. ?       分隔实际的 URL 和参数                     

freemarker在url中传递中文参数乱码

在freemarker将URL的编码格式设置为自己想要的格式: <#setting url_escaping_charset='utf-8'> 然后再参数后面加上"?url",这样传递到后台的参数编码就是就是你想要的格式了. 详情参见下面的代码: <#list signFileList as signFile> <#setting url_escaping_charset='utf-8'> <div style="padding:3p

前端vue项目js中怎么保证链式调用后台接口

在一个for循环中对同一接口调用多次,如何保证逐步执行,同步执行. html部分 <DcFileUpload v-for="(item, index) of fileLengthList" :key="index" ref="fileUploadData"> </DcFileUpload> DcFileIliad组件部分 //slot 标签就是为了备用留坑,如果用户需要在组件中增加节点就可以了,类似于插座功能 <te

ajax请求中传递的参数中如果含有特殊字符怎么处理?

在JQUERY AJAX开发中遇到了下面的一个问题,在执行AJAX请求的时候,需要传递一个“50%”的参数,而这个参数中含有特殊字符%.这样的话就会出现问题了,我们知道服务器在发送请求的时候,会将url中的参数转化成类似于“%2C%2F%3F%3A%40%26%3D%2B%24%23”,所以在我们执行含有这样特殊字符的ajax请求的时候就会出现错误,因为我们传递的参数可能发生了变化,也可能由于参数本身中就含有特殊字符所以系统没有办法编译它. 可能会抛出这样的一个异常: 警告: Parameter

在ASP.NET MVC中以post方式传递数组参数的示例

最近在工作中用到了在ASP.NET MVC中以post方式传递数组参数的情况,记录下来,以供参考. 一.准备参数对象 在本例中,我会传递两个数组参数:一个字符串数组,一个自定义对象数组.这个自定义对象UserInfo定义如下: public class UserInfo { public int UserId { get; set; } public string UserName { get; set; } } 二.后台代码 后台Action代码如下: [HttpPost] public Ac

(转发)在ASP.NET MVC中以post方式传递数组参数的示例

最近在工作中用到了在ASP.NET MVC中以post方式传递数组参数的情况,记录下来,以供参考. 一.准备参数对象 在本例中,我会传递两个数组参数:一个字符串数组,一个自定义对象数组.这个自定义对象UserInfo定义如下: public class UserInfo { public int UserId { get; set; } public string UserName { get; set; } } 二.后台代码 后台Action代码如下: [HttpPost] public Ac

团队开发前端VUE项目代码规范

团队开发前端VUE项目代码规范 2018年09月22日 20:18:11 我的小英短 阅读数 1658 一.规范目的: 统一编码风格,命名规范,注释要求,在团队协作中输出可读性强,易维护,风格一致的代码 二.开发SRC目录: 1.Vuex目录 (状态树配置) 2.Router目录(路由配置) 3.Pages目录 (放置主路由组件 注意命名规范) 4.Common目录 (放置静态文件) 5.Config目录 (全局配置项,路由拦截,报错信息,等枚举信息) 6.Api目录 ( 相关全局请求调用配置.