我正在执行 ajax 请求,并且在成功回调中我想刷新页面以反映更改。我试图在刷新该页面时将参数传递到同一页面。
网址类似于:
http://localhost:8080/details#component/12
我正在向其附加参数,如下所述。
window.location.href += "?code=approved";
window.location.reload();
以上在 Firefox 中有效,但在 IE 中无效,您能帮忙吗?
克里斯。
我正在执行 ajax 请求,并且在成功回调中我想刷新页面以反映更改。我试图在刷新该页面时将参数传递到同一页面。
网址类似于:
http://localhost:8080/details#component/12
我正在向其附加参数,如下所述。
window.location.href += "?code=approved";
window.location.reload();
以上在 Firefox 中有效,但在 IE 中无效,您能帮忙吗?
克里斯。
尝试将这些用于 IE:
window.location.reload(false); // To get page from cache
window.location.reload(true); // To get page from server
如果window.location.hash
为空,则不能在不使用正确函数的情况下为 location.href 分配新值(至少在 chrome 中测试过)。
尝试window.location.replace
:
if (!window.location.hash)
{
window.location.replace(window.location.href + "?code=approved")
}
哈希是问题所在;您将数据附加到 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