Javascript 异步&;同步注销功能

Javascript 异步&;同步注销功能,javascript,jquery,Javascript,Jquery,我正在尝试创建一个功能,当用户注销时,如果他们的购物车中有物品,就会显示一个确认窗口。下面是我的代码片段。我的重定向和重新加载有问题。我希望它能把我带到localhost:8080登录页面,但不管我在哪个页面上,它都会保持不变。当我手动刷新页面时,我知道注销部分正在运行b/c。在下面的代码段运行后,它将更改为来宾用户 编辑:我看了可能的副本,它提出了和你们到目前为止一样的建议。不幸的是,它不起作用。这让我如坐针毡,好像什么都没发生过 编辑:它适用于IE,但不适用于chrome和firefox。更

我正在尝试创建一个功能,当用户注销时,如果他们的购物车中有物品,就会显示一个确认窗口。下面是我的代码片段。我的重定向和重新加载有问题。我希望它能把我带到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';