JavaScript将页面重新加载为GET请求

EMP*_*EMP 14 javascript refresh

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

因此,例如,如果页面来自对" http:// server/do/some?thing# " 的POST请求,我想重新加载URL" http:// server/do/some?thing "作为GET .如果我试试

window.location.reload(true);
Run Code Online (Sandbox Code Playgroud)

导致IE尝试POST.如果我改为:

window.location = window.location.href;
Run Code Online (Sandbox Code Playgroud)

当URL具有锚点时,这不起作用.我是否真的需要自己进行字符串操作以摆脱"#whatever"或者是否有更简单,"更好"的方法来做到这一点?

EMP*_*EMP 15

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

function reloadAsGet()
{
    var loc = window.location;
    window.location = loc.protocol + '//' + loc.host + loc.pathname + loc.search;
}
Run Code Online (Sandbox Code Playgroud)


小智 6

请尝试以下方法:

location.replace(location.href)
Run Code Online (Sandbox Code Playgroud)