Можно ли подстановить запросы OPTIONS для CORS?

Мы внедрили CORS Interceptor в наше приложение, чтобы разрешить доступ к нашим API конкретным доменам. UrlMappings для этих правил следуют схеме.

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

Это работает нормально, однако запросам POST и PUT предшествует запрос OPTIONS, которого нет в отображении, поэтому он фактически пытается перейти к apiController. Это заканчивается тем, что CORS Interceptor обрабатывает запрос OPTIONS для apiController, прежде чем UrlMappings получит возможность переписать его туда, куда он действительно должен идти.

Я обнаружил, что могу решить следующие проблемы:

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

Однако я действительно не хочу делать это для каждой конечной точки POST/PUT/DELETE, которая у нас есть.

Я пытался сделать правила, такие как:

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

Оба из которых привели к ошибкам.

Есть ли способ подстановки символа OPTIONS для пути /api, чтобы мне не приходилось изменять каждое имеющееся отображение?

0 ответов

Другие вопросы по тегам