ajax存取值 实现跳转页面问题

 $(document).ready(function() {
        $("#zhuce").on("click", function() {

            var usename = $("#username").val();
            $.ajax({
                type : 'post',
                url : "/aidazhe-project/zhuceu",
                data : {
                    uname : usename,
                },
                dataType : "json",
success : function(data) {
                    if (data.flag == 'ok') {
                        $("#div1").html(data.msg);
                        sessionStorage.setItem("haha", "ok"); 
                        /* Map<String,String>map=new HashMap<String,String>();
                        map.put("hah",ok); */
                    } else {
                        $("#div1").html(data.msg);
                    }
                }
            });
            /*  alert(注册成功,请登录); */
        });

    });
    function show() {
        /* String str =map.get("hah").toString(); */
        if ( sessionStorage.getItem("haha")=='ok') {
            alert("注册成功");
            sessionStorage.clear(); 

            window.location = "Login.jsp"
        }
    }

这是我写的一个注册页面转登录的方法
注册跳转/aidazhe-project/zhuceu判断用户名是否重复
‘ok’就是不重复 然后跳到下面的show()方法中 弹框 跳转
我现在遇到的问题是 第一次 输入已有的用户名 会提示用户名已存在 改新用户正常注册跳转
但是 现在不刷新网页 输入任何已注册的用户 都不会提示用户已存在 而是直接跳转注册成功
sessionStorage.setItem这种方法会在服务器产生缓存 有没有更好的存取值的方法啊
因为上 面用的是ajax 所以没有页面跳转的 我的能力只能在下面加一个方法
希望哪位前辈能帮我解决一下

 window.location = "Login.jsp"

注意文件在服务器上的路径。

这个估计是缓存造成的。也就是说你第二次请求/aidazhe-project/zhuceu 时,直接得到了浏览器缓存的第第一次结果 以post方式提交就可以了。或者直接指示cache:false 或者在服务端直接声明不缓存结果 都可以的
另外sessionStorage 不会服务器产生缓存

sessionStorage是客户端的,和服务器端没关系,浏览器也不会发送此类数据,就没见你执行show函数,感觉楼主前端后端有点搞不清楚。。Map这种服务器端的代码要放服务器端标签《%%》里面才会执行