Javascript页面重定向和会话

时间:2014-04-14 13:18:35

标签: javascript session

我有注册javascript功能。通过windiw.location函数重定向到用户(用户的私有页面)是否正确?它会在会话范围内工作吗?它会在重定向请求时附加httpcookie吗?

function signup()
    {

        var uName = document.forms[0].email.value;
        var pass = document.forms[0].password.value;

        var xmlhttp;
        var response;
        var url = "/v2/application/userlogin?fromClient=web&"+"email="+uName+"&password="+pass;
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function()
        {
            if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
                response =  xmlhttp.responseText;
                //alert(response);
                window.location = "/web/jsp/index.jsp?fromClient=web";

            } else {
                        //document.getElementById("mainWindow").innerHTML = "Loading...";
                        //alert("loding");
            }
        };
        xmlhttp.open("POST", url, true);
        xmlhttp.send();


        //alert(response);

    }

1 个答案:

答案 0 :(得分:1)

从ajax回调中重定向是完全可以接受的。但是,当请求受保护的页面时,在显示受保护的内容之前,您必须确保用户具有经过身份验证的会话。

  

在重定向请求时会附加httpcookie吗?

如果服务器响应包含新cookie,那么当window.location请求出现时,它将被发送。

附注:您应使用encodeURIComponent()对网址中的用户输入进行URL编码,以避免特殊字符违反URL编码格式:

var url = "/v2/application/userlogin?fromClient=web&email="+ encodeURIComponent(uName)+"&password="+encodeURIComponent(pass);