4

我正在执行 ajax 请求,并且在成功回调中我想刷新页面以反映更改。我试图在刷新该页面时将参数传递到同一页面。

网址类似于:

http://localhost:8080/details#component/12我正在向其附加参数,如下所述。

window.location.href += "?code=approved";
window.location.reload();

以上在 Firefox 中有效,但在 IE 中无效,您能帮忙吗?

克里斯。

4

3 回答 3

1

尝试将这些用于 IE:

window.location.reload(false); // To get page from cache
window.location.reload(true); // To get page from server
于 2012-05-19T13:25:39.450 回答
1

如果window.location.hash为空,则不能在不使用正确函数的情况下为 location.href 分配新值(至少在 chrome 中测试过)。

尝试window.location.replace

if (!window.location.hash) 
    {
        window.location.replace(window.location.href + "?code=approved")
    } 
于 2014-11-13T14:45:51.363 回答
1

哈希是问题所在;您将数据附加到 URL 片段(# 之后的部分)片段不会发送到服务器,即 url 不会更改,因此无需再次请求页面。尝试手动将“#some_text”添加到浏览器中的 url,看看会发生什么;)

尝试这样的事情:

var newloc = document.location.href;
if(document.location.hash){
    // remove fragment
    newloc = newloc.substr(0, newloc.indexOf(document.location.hash));
}
newloc += document.location.search ? ";" : "?"; // prevent double question mark
newloc += 'code=approved';
// append fragment back to url
于 2012-05-19T14:10:46.907 回答