为什么 pushState() 不适用于干净的 URL?
why pushState() does not work for clean URLs?
我有两种URL:
- 参数 URL 喜欢
www.example.com/page.php?test=argument
- 参数URL(干净URLs)喜欢
www.example.com/classname/methodname/arg1/arg2
现在我需要使用 pushState();
来替换新的 URL。对于 参数 URL 它也有效,但问题是对于 参数 URL.
这是我的代码:
var db = 'database';
var word = 'hello';
window.history.pushState("object", "title", "page.php?s="+db+"&q="+word);
参数的输出URL:(这很好)
www.example.com/page.php?test=argument // Current URL
www.example.com/page.php?s=database&q=hello // New URL
参数的输出 URL:
www.example.com/classname/methodname/arg1/arg2 //Current URL
www.example.com/classname/methodname/arg1/page.php?s=database&q=hello // New URL
虽然我想要这个:(对于参数和参数URL)
www.example.com/page.php?s=database&q=hello
如何为参数 URL 修复它?换句话说,是否可以在推送之前删除所有参数? (在追加之前删除当前参数)
我假设 pushState 支持 cwd(当前工作目录)。尝试在前面加上前导斜杠 /
,因此:
window.history.pushState("object", "title", "/page.php?s="+db+"&q="+word);
我有两种URL:
- 参数 URL 喜欢
www.example.com/page.php?test=argument
- 参数URL(干净URLs)喜欢
www.example.com/classname/methodname/arg1/arg2
现在我需要使用 pushState();
来替换新的 URL。对于 参数 URL 它也有效,但问题是对于 参数 URL.
这是我的代码:
var db = 'database';
var word = 'hello';
window.history.pushState("object", "title", "page.php?s="+db+"&q="+word);
参数的输出URL:(这很好)
www.example.com/page.php?test=argument // Current URL
www.example.com/page.php?s=database&q=hello // New URL
参数的输出 URL:
www.example.com/classname/methodname/arg1/arg2 //Current URL
www.example.com/classname/methodname/arg1/page.php?s=database&q=hello // New URL
虽然我想要这个:(对于参数和参数URL)
www.example.com/page.php?s=database&q=hello
如何为参数 URL 修复它?换句话说,是否可以在推送之前删除所有参数? (在追加之前删除当前参数)
我假设 pushState 支持 cwd(当前工作目录)。尝试在前面加上前导斜杠 /
,因此:
window.history.pushState("object", "title", "/page.php?s="+db+"&q="+word);