我可以通过ajax调用重定向用户吗?

时间:2013-03-11 13:43:50

标签: java ajax java-ee dojo

我只是想知道我是否可以通过ajax调用重定向用户,我必须在java中调用我的一个方法,然后从那里进行重定向

3 个答案:

答案 0 :(得分:6)

AJAX调用将原始数据返回到Javascript回调 他们无法告诉浏览器做任何事情。

相反,您可以告诉您的Javascript代码导航到新页面。

答案 1 :(得分:2)

您可以像这样构建一个ajax重定向(例如在doFilter中的过滤器中)。

String facesRequestHeader = httpServletRequest.getHeader( "Faces-Request" );

boolean isAjaxRequest = facesRequestHeader != null
        && facesRequestHeader.equals( "partial/ajax" );

String url = MessageFormat.format( "{0}://{1}:{2,number,####0}{3}",
        request.getScheme(), request.getServerName(),
        request.getServerPort(), YOUR_NEW_URL);

PrintWriter pw = response.getWriter();
pw.println( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" );
pw.println( "<partial-response><redirect url=\"" + url
        + "\"></redirect></partial-response>" );
        pw.flush(););

如果你正在使用servlet或JSF或类似的东西,你可以在进入生命周期之前重定向。

答案 2 :(得分:0)

您可以从Java发送ajax响应,然后根据答案重定向用户。