gpt4 book ai didi

javascript - Wicket 忽略来自 Spring 的 302 重定向

转载 作者:行者123 更新时间:2023-12-03 04:58:14 25 4
gpt4 key购买 nike

我有一个 Angular + spring REST 和 Wicket 混合应用程序。Wicket 提供 UserPage 类。此用户页面包含我的 javascript 页面。

public class UserPage extends WebPage {

public UserPage() {
super();
}

@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(JavaScriptHeaderItem.forUrl("https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"));
response.render(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(UserPage.class, "user.js")));
response.render(CssHeaderItem.forReference(new CssResourceReference(UserPage.class, "user.css")));
}

我已经实现了一个过滤器来检查 session 是否处于事件状态,如果不是事件状态,则页面应该重定向。

WicketSession s = WicketSession.get();

if (s == null) {
response.sendRedirect("/");
} else if (s.getUser() == null) {
response.sendRedirect("/");
} else {
filterChain.doFilter(request, response);
}

但是,当我在未登录的情况下运行此页面时,浏览器会收到 302 但不会重定向。仅当通过 Wicket 口提供页面时才会发生这种情况。如果我手动转到 UserPage.html,它会重定向。

有谁知道为什么会发生这种情况吗?这肯定是特定于 Wicket 口的,而且我对 Wicket 口还不太熟悉。

当尝试访问/user 时,页面保持不变,并且 html 正文作为响应数据发送,我的脚本尝试解析该数据但失败(因此所有空复选框)

当手动转到 UserPage.html 时,它会重定向。 enter image description here

有谁知道为什么 wicket 在发送 302 时不重定向?有关可能修复的任何线索吗?

最佳答案

1) 如果您将 session 数据保存在 WicketSession 中,那么它应该位于 web.xml 中 Spring 的 Filter/Servlet 之前。

如果您使用Spring Security Authentication,我建议将用户保留在Spring Security Authentication 中。

2) WicketSession.get() 永远不会返回 null。它的作用相当于“获取或创建”。您需要 if (WicketSession.exists()) {...}

关于javascript - Wicket 忽略来自 Spring 的 302 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42343725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com