【问题标题】:Removing parameters from url (js or php)从 url (js 或 php) 中删除参数
【发布时间】:2021-04-02 16:45:18
【问题描述】:

我在 url 中有一些参数是在进入特定页面时添加的,因此打开了正确的页面。例如: https://example.com/index.php?cCode=SFI=&cmpn=cHJvdmlkaW8= 现在,当我到达该页面时,我想删除它们,这样它们就不会被进一步传递,但仍想保留任何其他参数,例如 source=facebook 或其他...我找到了一种删除它们的方法这段代码:

var urlParts = url.split('?');
var params = new URLSearchParams(urlParts[1]);
params.delete('cCode');
params.delete('cmpn');
var newUrl = urlParts[0] + '?' + params.toString();
history.pushState(null, null, newUrl);

但是当我点击某个链接时它们仍然会被转发...有什么方法可以做到这一点,用 js 甚至 php?

【问题讨论】:

标签: javascript php url parameters


【解决方案1】:

我建议使用 URL 对象而不是 url 字符串。

let url = new URL(window.location.href);
url.searchParams.delete('cCode');
url.searchParams.delete('cmpn');
window.history.pushState({}, document.title, url);

请注意,IE 不支持 URL 对象。

请参阅此 url polyfill 以了解 IE 兼容性。

https://www.npmjs.com/package/url-polyfill

【讨论】:

  • 是的,这也有效,就像我最初使用的代码一样,这只是这个网站的一个问题,由于某种原因它无法正常工作,但多人工作,所以我必须检查所有... TY
  • 也许查询参数是通过服务器端的 php 执行的。祝你好运!
猜你喜欢
  • 2012-05-19
  • 2010-12-19
  • 2014-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多