异步&同步注销功能

时间:2017-06-01 18:51:47

标签: 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();
});

1 个答案:

答案 0 :(得分:-1)

尝试更换:

location.reload();
$(location).attr('href','http://localhost:8080/login');

使用:

document.location.href='http://localhost:8080/login';