我尝试创建一项功能,当用户注销时,如果他们的购物车中有商品,则会向他们显示确认窗口。以下是我的代码段。我在重定向和重新加载方面遇到了问题。我希望它能带我到localhost:8080登录页面,但它会保留在我碰巧在的任何页面上。我知道当我在下面的代码片段运行后手动刷新页面时,注销部分正在运行b / c,它会更改为访客用户。
编辑:我查看了可能的副本,它提出了与你们到目前为止相同的建议。不幸的是它没有用。它让我在同一页上,好像什么也没发生。编辑:它适用于IE,但不适用于chrome和firefox。更新的代码段
已修改的代码段:
$("#menu_sign_out").click(function(){
var result;
var httpRequest = new XMLHttpRequest(); //Asynchronous
httpRequest.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200){
result = this.responseText;
console.log(result);
myObj = JSON.parse(this.responseText);
if(myObj.count > 0){
if(confirm("You have items in your cart. Are you sure you want to leave?")){
var request = new XMLHttpRequest(); //Synchronous
request.open('GET', "/logout", false);
request.send(null);
window.location.replace('/login');
//window.location.href='/login';
} else {
//do nothing
}
} else {
var request = new XMLHttpRequest(); //Synchronous
request.open('GET', "/logout", false);
request.send(null);
window.location.replace('/login');
//window.location.href='/login';
}
}
};
httpRequest.open('GET', "/api/cart/countItems");
httpRequest.send();
});
答案 0 :(得分:-1)
尝试更换:
location.reload();
$(location).attr('href','http://localhost:8080/login');
使用:
document.location.href='http://localhost:8080/login';