Javascript 异步&;同步注销功能
我正在尝试创建一个功能,当用户注销时,如果他们的购物车中有物品,就会显示一个确认窗口。下面是我的代码片段。我的重定向和重新加载有问题。我希望它能把我带到localhost:8080登录页面,但不管我在哪个页面上,它都会保持不变。当我手动刷新页面时,我知道注销部分正在运行b/c。在下面的代码段运行后,它将更改为来宾用户 编辑:我看了可能的副本,它提出了和你们到目前为止一样的建议。不幸的是,它不起作用。这让我如坐针毡,好像什么都没发生过 编辑:它适用于IE,但不适用于chrome和firefox。更新的代码片段 修改的代码片段:Javascript 异步&;同步注销功能,javascript,jquery,Javascript,Jquery,我正在尝试创建一个功能,当用户注销时,如果他们的购物车中有物品,就会显示一个确认窗口。下面是我的代码片段。我的重定向和重新加载有问题。我希望它能把我带到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();
});
尝试替换:
location.reload();
$(location).attr('href','http://localhost:8080/login');
与:
您是否尝试过
location.href=yourURL
?location.reload()
重新加载页面。之后的任何代码都不会运行。另外,只需使用location.href='
而不是使用jQuery.to引用“一个人不能简单地使用jQuery重定向”@Lixus-我尝试了你的建议,不幸的是没有运气。@Patrickbar-请参见编辑,不幸的是,这没有帮助。我尝试了这个,不幸的是没有效果。
document.location.href='http://localhost:8080/login';