我只是想知道我是否可以通过ajax调用重定向用户,我必须在java中调用我的一个方法,然后从那里进行重定向
答案 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响应,然后根据答案重定向用户。