【发布时间】:2021-02-19 15:54:31
【问题描述】:
我有一个 servlet 过滤器,它会在会话过期时执行重定向。
对于非 ajax 请求,过滤器执行 HttpServletResponse.sendRedirect(myUrl) 来执行重定向,效果很好。但是,我不能对 ajax 类型的请求说同样的话。
对于 ajax 请求,过滤器执行 HttpServletResponse.getWriter().println(partialResponseContent) 来执行重定向。它不起作用。屏幕保持不变,似乎被冻结并且所有输入字段都被禁止。关于我可能缺少什么或我可以尝试找出问题原因的任何指针?
以下是部分响应内容:
<?xml version="1.0" encoding="UTF-8"?><partial-response><redirect url="/MyAccount/command?cmd=twoFA&TargetUrl=/MyAccount/viewDevices.jsf"></redirect></partial-response>
我在 Chrome 的开发者工具屏幕中仔细检查了它,发现内容发送正确(见附图)。
【问题讨论】: