如何在url上拼接对象参数?用&和?=拼接

vue路由URL拼接全局参数 vue-router地址栏URL拼接全局参数 业务需求: vue单页面项目,需要在URL地址栏拼接固定的参数,在所有页面使用。默认采用vue路由的history模式;hash模式也可以同样适用。 主要是在 vue-router 导航守卫的全局前置守卫中实现。即 vue-router 生命周期钩子函数 router.beforeEach 中进行路由拦截处理。 主要代码: router.beforeEach((to, from, next) => { if (Object.keys(to.quer 阅读详情

业务需求

下载接口需要把参数拼接到接口地址上发给后端。

把 { orderId:156, typeId:984 } 处理成 http://test.com/download?orderId=156&typeId=984

方法一  使用for循环

首先,函数从环境变量 VUE_APP_BASE_API 中获取基本的 API 地址,并将其赋值给 baseUrl 变量。接下来,通过拼接传入的 url 参数和问号字符,构建了 expurl 变量。

然后,使用循环遍历传入的 query 对象的属性。在每次循环中,将属性名和属性值以 key=value 的形式拼接到 queryStr 字符串中。如果当前属性不是最后一个属性,那么也要拼接上 & 字符。

最后,将 queryStr 拼接到 expurl 后面,得到最终的导出 URL,并将其返回给调用方。

function getExportUrl2(url, query) {
  let baseUrl = process.env.VUE_APP_BASE_API;

  // 非本地环境的BASE_API为比如为“/api”,如果proxy代理不能去掉重复的api,要手动去掉,添加以下代码
  // if (process.env.VUE_APP_BASE_API.toString().indexOf("http://10.0") == -1) {
  //   baseUrl = "";
  // }

  let expurl = baseUrl + url + "?";
  let queryStr = "";
  const keys = Object.keys(query);
  for (let i = 0; i < keys.length; i++) {
    const key = keys[i];
    queryStr += key + "=" + query[key];

    if (i !== keys.length - 1) {
      queryStr += "&";
    }
  }
  expurl += queryStr;

  return expurl;
}

方法二  借助qs(querystring) 库

qs是一个npm仓库所管理的包,主要用来处理url地址。

qs主要有两个方法:

  • qs.stringify()是将对象序列化成url的形式,以&拼接。
  • qs.parse()是将url解析成对象的形式

将参数序列化成url的形式用到的是qs.stringigy()。

安装

npm install qs --save

使用

import qs from 'qs'
let urlObj = {
  orderNo:'8899665',
  type:'23'
}
let url = qs.stringify(urlObj)
console.log(url)  //'orderNo=8899665&type=23'


let requestUrl = '/test/list'
const paramStringify = Qs.stringify(params)
this.$request.post(requestUrl,paramStringify).then(({code,data,message}) => {
  if(code == 200){
    this.$message.success('修改成功')
  }else{
    this.$message.error(message)
  }
})
用户视角下的vfsglobal预约困境:从注册到登录的全流程避坑指南 本文详细解析了vfsglobal签证预约系统从注册到登录的全流程操作,帮助用户避开常见技术陷阱。针对IP限制、DNS解析、浏览器缓存等登录障碍提供实用解决方案,并揭示账号管理的隐藏规则与支付环节的延时处理技巧,助力用户高效完成签证预约。 阅读详情

相关推荐

【Qualcomm高通音频】如何封装音频控件?

音频代码涉及面很广,这篇文档介绍如何封装音频控件给HAL层使用。这里以AW87519芯片调试为例进行介绍封装音频控件使用的方法。在最初接出到高通音频基础功能调试的时候,都是从tinyalsa指令/mixer_paths文件配置开始。因为单独一个音频设备的调试,都对应一条音频链路的打通。比如以下链接上高通平台基础音频输入输出设备调试: 【Qualcomm音频】Speaker 调试记录http...

crow_ch的博客 1931

使用vue实现通过变量动态拼接url

主要介绍了使用vue实现通过变量动态拼接url,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Vue3 - 给路由 URL 地址加上自定义前缀,网页的路径前面带上自己固定的字符串字段前缀(给地址栏 url 前面自动拼接上自定义前缀并且与路由 path 自动结合,支持本地跑部署到线上效果一致)

vue3如何在路由地址上加上自定义前缀,vue3怎么给url前面拼接固定字符串,vue3vite在路由地址栏前面添加前缀,Vue3项目部署路由加前缀,vue项目部署后如何给网页的地址栏中增加固定的访问字段,vue3路径上设置指定的前缀,vue3+vite实现自动在路由前面添加前缀,vue3项目地址栏添加前缀,在路由上添加公共的路由前缀,vue3给所有路由添加前缀方法,vue3vite3项目给全部的路由前加上一段固定文本,vue3当页面跳转时路由上自动加上前缀,vite全局给url地址前面添加固定的字符串参数

🏆 前端领域优质创作者 7480

url如何拼接参数格式& ? 用&? =拼接

url如何拼接参数格式& ? 用&? =拼接

Mygongzi的博客 4万+

前端URL拼接路径参数

我们有时候会遇到浏览器URL拼接参数的场景,例如页面跳转时,带上一个特定的标识:https://www.baidu.com?所以我们在拼接参数的时候要先行判断,原url是否已经包含参数,如果不包含要以。这样我们的参数就添加好了,我们只需要调用。我们首先能想到用字符串拼接的方式实现。我们就得到了一个解析好的URL对象。我们可以用浏览器给我们提供的。如果我们想增加参数,直接在。方法就能得到完整的路径了。

个人博客 7230

如何在url拼接对象参数

如果已经存在具有相同名称的参数,则会将新参数添加到已有参数的后面。该代码的主要逻辑是将obj对象转换为JSON字符串并进行URL编码,然后将编码后的参数添加到URLSearchParams对象中。set(name, value) 方法:此方法会将指定名称的参数的值设置为新的指定值。set(name, value):将URLSearchParams对象中具有指定名称的参数的值设置为新的指定值。getAll(name):获取URLSearchParams对象中具有指定名称的所有参数的值,返回一个数组。

m0_46339022的博客 2334

js 拼接url参数

class Url { /** * 传入对象返回url参数 * @param {Object} data {a:1} * @returns {string} */ getParam(data){ let url = ''; for(var k in data){ let value =...

sun 1万+

对象拼接 请求路径_url 地址含参数较多如何拼接

url 地址拼接是经常会遇到的问题。所以必须要掌握这个技术1.合并参数对象,循环出来。var commonParams = {g_tk: 1928093487,inCharset: 'utf-8',outCharset: 'utf-8',notice: 0,format: 'jsonp'};var data = Object.assign({}, commonParams, {topid:'',n...

weixin_39685392的博客 1340

URL参数拼接方法

1. 最常见的拼接方法: url?arg1=value1&amp;arg2=value2&amp;arg3=value3... 注:第一个参数用?进行连接,其他的用&amp;连接。 example: 1 var loadsrc = $(this).attr('href'); //this为页面当中的一个元素 2 var companyId = $(this).attr('co...

weixin_30319153的博客 4117

URL中提取参数与将对象转换为URL查询参数

一、从URL中提取参数 有下列字符串: var linkURL = 'http://localhost:8080/pages/august.html?sourceId=60054&u_id=deaf'; 对于一个真实的URL地址,可以用js来读取location中的相关信息来获得某些信息,下面列举一些: location.origin : http://loca

qyaroon的博客 1万+

Js对象转换为URL参数及将URL参数转换为对象的方法

文章来源:技术库 地址:www.ctoku.com/post/CFwLms… Js对象转换为URL参数及将URL参数转换为对象的方法 在开发小程序的时候,发现我们获取到的path不包括其中的参数,但是微信小程序是将参数作为query对象过来,这对于我们做路径二次跳转的时候及不方便,我们在取到query时将其转换为URL参数path拼装起来就是一个完整的路径。 JS 对象URL参数 这里...

weixin_33811539的博客 1万+

遍历一个对象的属性名称值到map中,然后进行URL地址的拼接

遍历一个对象的属性名称值到map中,然后进行URL地址的拼接 先说下需求:要求通过URL进行地址的拼接URL=(URL地址)?A=2012-8-5&B=bbb&C=ccc,传递给web页面,进行URL值的传递。 具体实现看下面的代码吧: public class Test3 { public static void main(String[] args) { TestBe

Lucky_bo的专栏 4832

url参数解析与拼接

1.参数解析 // 返回url参数对象 export function getUrlParseQuery (url) { if (url) { // 字符串截取 url = url.substr(url.indexOf('?') + 1) } // 创建一个对象,用于存name,value const result = {} // location.search设置或返回从问号 (?) 开始的 URL(查询部分) const queryString = url |

qq_24581629的博客 1202

Vueurl拼接参数获取解析

Vueurl拼接参数获取解析

weixin_42342065的博客 6104

vue 关于url参数拼接

uni-app 关于url参数拼接,对象形式传参、单个参数传参 let data = { id: item.id, trainId: this.id, type: 'news', ptitle: item.ptitle }; console.log(data) uni.navigateTo({ url:`../details/knowDetail?data=${JSON.stringify(data)}` }); 多个参数: let data = { id: this.detailData.id

qq_45511353的博客 7595

超级详细的教程 一步步教你Vue项目中使用axios如何进行参数拼接

文章目录一、Vue 中的网络请求二、axios的引入三、常用网络请求方式1、getA、字符串拼接方式:B、通过params属性传递对象:C、路径拼接方式:D、无请求参数:2、postA、Content-Type: application/json① 参数直接传递对象:② 通过data属性传递对象:B、Content-Type: multipart/form-data① 文件上传C、Content-Type: application/x-www-form-urlencoded。3、put① 参数直接传递对象

梦蝶 6984

Vue使用axios进行get请求拼接参数的几种方式

本文主要介绍如何在Vue使用axios进行get请求拼接参数的两种方式我们就以github上的一个开源接口举例:q=xxx这是github给开发人员提供的一个接口,是get请求。我们可以直接通过浏览器访问很明显,q是一个参数,xxx是参数的值,至于q的值是什么,就看我们传什么参数,这种格式的传参格式我知道的有以下两种,下面分享给大家以上就是我知道经常在vue项目中使用axios进行get请求拼接参数的两种方式了如果大家知道更多的方式或者建议,欢迎随时留言。

见证自己学习,成长的记录 1万+

vueurl拼接参数的方式

vueurl拼接参数

雨果的博客 2007

怎么用Python将参数拼接长命令?那么我想动态拼接这些参数,并且有的参数不使用,代码怎么设计?

怎么用Python将参数拼接长命令?那么我想动态拼接这些参数,并且有的参数不使用,代码怎么设计?

qq_33945243的博客 856

DDR3内存的PCB仿真与设计.pdf

DDR3内存的PCB仿真与设计.pdf

上一篇: 判断是否为空数组
下一篇: 防抖和节流的实现与区别(vue2、vue3写法)
donghua201
博客等级 码龄4年 62粉丝 71原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值