如何在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("");
}

07-26 07:19