为什么pushState()不适用于干净的URL?

时间:2015-08-06 10:58:50

标签: javascript jquery url pushstate

我有两种网址:

  1. 参数网址,如www.example.com/page.php?test=argument
  2. 参数网址(干净的网址),例如www.example.com/classname/methodname/arg1/arg2
  3. 现在我需要使用pushState();来替换新网址。对于参数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
    
    参数网址

    输出

    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
    

    如何修复参数网址?换句话说,我可以在推送之前删除所有参数吗? (在追加之前删除当前参数)

1 个答案:

答案 0 :(得分:0)

我假设pushState正在尊重cwd(当前工作目录)。尝试在前导斜杠/之前添加,所以:

window.history.pushState("object", "title", "/page.php?s="+db+"&q="+word);