是否可以对CORS进行通配符OPTIONS请求?

时间:2018-05-07 19:11:19

标签: grails grails-3.1 grails-3.2

我们已在应用程序中实现了CORS拦截器,以允许特定域访问我们的api。这些规则的UrlMappings遵循。

的模式
"/api/domain/[sub-action]"(controller: "anotherController", action: "actionEndpoint", method: "PUT" )

这样可以正常工作,但POST和PUT请求前面有一个OPTIONS请求,它不在映射中,所以它实际上是在尝试转到apiController。最终,CORL拦截器处理apiController的OPTIONS请求,之后UrlMappings有机会将其重写到实际应该去的位置。

我发现我可以执行以下操作来解决此问题:

"/api/domain/[sub-action]"(controller: "anotherController") {
    action = [ PUT: "actionEndpoint", OPTIONS: "actionEndpoint" ]
}

但是,我真的不想为我们拥有的每个POST / PUT / DELETE端点做到这一点。

我试图制定如下规则:

"/api/**/*"(method: "OPTIONS")
"/api/**/*"(controller:"*", action: "*", method: "OPTIONS")

这两个都导致错误。

有没有办法对/ api路径的OPTIONS方法进行通配符,这样我就不必修改我们拥有的每个映射?

0 个答案:

没有答案