javascript - 处理来自http响应的重定向

时间:2015-02-09 13:57:06

标签: javascript redirect httprequest httpresponse

我正在尝试构建一个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。

谢谢!

1 个答案:

答案 0 :(得分:1)

Javascript AJAX请求遵循重定向。您的javascript代码可能最终请求您希望将浏览器重定向到的页面。

尝试返回页面以重定向到您的回复,然后让浏览器导航到该页面。

您可以看到将会遵循重定向的XMLHttpRequest standard个州:

  

HEADERS_RECEIVED(数值2)

     

已遵循所有重定向(如果有)并且已收到最终响应的所有HTTP标头。该对象的几个响应成员现在可用。