我正在尝试构建一个html页面,当我输入它时,它会将我重定向到另一个页面,具体取决于会话中的属性。
如果会话中有一个名为“username”的属性,它将不会重定向我,否则会重定向。
为了做到这一点,我编写了一个javascript函数,用于调用检查该属性是否存在的java servlet。
<script type="text/javascript">
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
if (req.readyState == 4) {
var data = req.responseText;
}
document.write(req.readyState);
}
req.open('POST','sessionCheck',true);
req.send(null);
</script>
servlet中的代码是:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession hs = request.getSession();
String username = (String) hs.getAttribute("username");
if (username == null)
response.sendRedirect("/login.html");
}
我知道共鸣确实发送了重定向,但网页没有被重定向。
*注意:我正在为Web开发人员使用Eclipse Java EE。
谢谢!
答案 0 :(得分:1)
Javascript AJAX请求遵循重定向。您的javascript代码可能最终请求您希望将浏览器重定向到的页面。
尝试返回页面以重定向到您的回复,然后让浏览器导航到该页面。
您可以看到将会遵循重定向的XMLHttpRequest standard个州:
HEADERS_RECEIVED(数值2)
已遵循所有重定向(如果有)并且已收到最终响应的所有HTTP标头。该对象的几个响应成员现在可用。