1
我正在映射过滤器以在登录之前检查一些必填字段。我的代码如下所示:Spark在过滤两次之前运行
before("/login", (req, res) -> {
// do some things
LOGGER.debug("before /login");
LOGGER.debug("Request -> " + req);
LOGGER.degub("body " + req.body());
}
当我的应用程序运行时,before
过滤器被调用两次。
在每一个req
是不同的实例。在第一个req.body()
的内容是一个空字符串。在第二个中,内容正是我从客户端应用程序发送的内容。
调试,我发现一个带路径的过滤器被描述为SparkUtils
类中声明的+/*paths
。
有两个问题:
- 如何禁用这种行为?
- 声明为
+/*paths
的过滤器的用途是什么?
我相信滤波器因此被称为两次,是因为我已经按照步骤启用CORS描述here。无论如何,我需要使用CORS,但是被调用两次的过滤器在我的场景中是一个问题。
我按照你的建议做了,检查使用if(HttpMethod.post.name()。equalsIgnoreCase(req.requestMethod()))''。我不确定它是否优雅,但可以解决。 – josivan
@ josivan是的,它会工作,但如果你问我,我个人认为它不是优雅的 –