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是的,它會工作,但如果你問我,我個人認爲它不是優雅的 –