-2

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

4

3 回答 3

6

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

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

于 2013-03-11T13:44:59.910 回答
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 或类似的东西的情况下,您可以在进入生命周期之前重定向。

于 2013-03-11T14:16:21.490 回答
0

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

于 2013-03-11T13:45:22.737 回答