欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > 安全拼接url,页面传参时如果有参数和无参数时拼接方法

安全拼接url,页面传参时如果有参数和无参数时拼接方法

2025/4/30 13:13:31 来源:https://blog.csdn.net/Z_Gleng/article/details/147615203  浏览:    关键词:安全拼接url,页面传参时如果有参数和无参数时拼接方法

如果 url 本身已经包含参数(例如 url = "/path?key1=value1"),直接拼接 ?token= 会覆盖原有参数或导致格式错误。以下是 安全拼接 URL 参数 方法:

 方法 1:使用 URLSearchParams(现代浏览器推荐)

const urlWithParams = new URL(url, window.location.origin);// 添加/覆盖 token 参数
urlWithParams.searchParams.set('token', token_706);// 生成完整 URL
const finalUrl = urlWithParams.pathname + urlWithParams.search;dispatch(routerRedux.push(finalUrl));

 示例

  • 输入 url = "/path?key1=value1" → 输出 /path?key1=value1&token=xxx

  • 输入 url = "/path" → 输出 /path?token=xxx

方法 2:手动处理字符串(兼容旧环境) 

const hasExistingParams = url.includes('?');
const separator = hasExistingParams ? '&' : '?';
const finalUrl = `${url}${separator}token=${encodeURIComponent(token_706)}`;dispatch(routerRedux.push(finalUrl));

 关键点

  • 使用 encodeURIComponent 避免特殊字符(如 &=)破坏 URL 结构。

  • 自动检测原 URL 是否已有参数,选择 ? 或 & 连接符。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词