我只想知道我是否可以通过 ajax 调用重定向用户,我必须在 java 中调用我的方法之一,然后从那里进行重定向
问问题
227 次
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 回答