我有注册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);
}
答案 0 :(得分:1)
从ajax回调中重定向是完全可以接受的。但是,当请求受保护的页面时,在显示受保护的内容之前,您必须确保用户具有经过身份验证的会话。
在重定向请求时会附加httpcookie吗?
如果服务器响应包含新cookie,那么当window.location
请求出现时,它将被发送。
附注:您应使用encodeURIComponent()
对网址中的用户输入进行URL编码,以避免特殊字符违反URL编码格式:
var url = "/v2/application/userlogin?fromClient=web&email="+ encodeURIComponent(uName)+"&password="+encodeURIComponent(pass);