如何在Play 2+中将所有OPTION请求路由到某个控制器?
我在路线文件中有这条路线:
OPTIONS / @controllers.CORSController.preFlight
我还需要将所有OPTION请求路由到同一控制器,例如:
OPTIONS /dev/upload @controllers.CORSController.preFlight
OPTIONS /some/path @controllers.CORSController.preFlight
...
如何使用一条路由或其他某种全局方式(例如覆盖onRouteRequest方法)来实现此目的?
谢谢
最佳答案
您可以使用通配符路径来捕获特定HTTP方法的所有路由,如下例所示:
OPTIONS /*path @controllers.CORSController.preFlight(path)
OPTIONS / @controllers.CORSController.preFlight
请注意,路由定义中的
path
参数是编译路由文件所必需的。您将必须添加一个重载的preFlight
方法以接受String参数,即使您不必在其主体中使用它。public Result preFlight(String path) {
// insert your body
}
public Result preFlight() {
return preFlight("");
}