如何让 grails 3.x 响应 OPTIONS 请求?

How to get grails 3.x to respond to an OPTIONS request?

在 grails 2.x 中,我们必须将其添加到 src/templates/war/web.xml 以便它路由 OPTIONS 请求。使用 CORS 时会使用这些类型的请求。

<servlet>
    <servlet-name>grails</servlet-name>
    <servlet-class>org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    <init-param>
        <param-name>dispatchOptionsRequest</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>

web.xml 在 grails 3 中不再使用,因此必须有一种新方法。我也很好奇为什么这个选项没有默认开启。

似乎新的配置方式在 resources.groovy:

import org.grails.web.servlet.mvc.GrailsDispatcherServlet

beans = {
    // configure dispatch servlet so it dispatches OPTIONS requests
    dispatcherServlet(GrailsDispatcherServlet) {
        dispatchOptionsRequest = true
    }
}