19

我有一个看似简单的问题,但找不到答案。我有一个网页,它可能是由 POST 请求产生的,并且 URL 中可能有一个锚点 (#)。我想将此页面重新加载为 JavaScript 中的 GET 请求。所以它类似于这个问题,但我实际上想避免 POST,而不仅仅是关于它的警告。

因此,例如,如果页面是由对“ http://server/do/some?thing# ”的 POST 请求产生的,我想将 URL“ http://server/do/some?thing ”重新加载为 GET . 如果我尝试

window.location.reload(true);

这会导致 IE 尝试 POST。如果我改为:

window.location = window.location.href;

当 URL 有锚点时,这不起作用。我真的需要自己进行字符串操作以摆脱“#whatever”还是有更简单、“更好”的方法来做到这一点?

4

3 回答 3

20

到目前为止,我想出的最好的是:

function reloadAsGet()
{
    var loc = window.location;
    window.location = loc.protocol + '//' + loc.host + loc.pathname + loc.search;
}
于 2009-08-04T01:23:15.147 回答
8

尝试以下操作:

location.replace(location.href)
于 2015-04-21T16:09:32.903 回答
1

你可以试试这个

location=location.href
于 2017-05-27T10:42:41.893 回答