CORS для Azure APIM работает только при настройке на операциях, а не на уровне продукта - PullRequest
0 голосов
/ 23 октября 2019

У нас проблема с политиками CORS, и мы не уверены, является ли это ошибкой или нет?

Мы попытались установить политику CORS для продукта, используемого в API, без какого-либо эффекта. Затем мы применили ту же политику CORS на уровне API для «всех операций». На этот раз все сработало, как и ожидалось.

Поскольку мы понимаем, что политика CORS на уровне продукта также должна быть выполнимой, мы можем ошибаться или есть какие-то детали, о которых нам следует знать, чтобы это работало на уровне продукта?

1 Ответ

0 голосов
/ 25 октября 2019

Если вашему продукту требуется подписка на политику CORS для работы, ключ ДОЛЖЕН быть передан в строке запроса. Проблема здесь в том, что если вы попытаетесь передать ключ подписки в браузере заголовка, он все равно отправит запрос OPTIONS без каких-либо дополнительных заголовков. APIM не сможет идентифицировать продукт и применить ключ подписки. Таким образом, политика CORS не будет работать.

Если ключ передается в строке запроса, с другой стороны, эта информация предварительно указана в запросе OPTIONS, и APIM работает как требуется.

Это не проблема APIM дляse, так как сама спецификация CORS не допускает никаких дополнительных заголовков в запросе OPTIONS. И это относится только к запросам, которые требуют предварительного запроса OPTIONS. Запросы CORS GET должны работать так, как они отправляются напрямую.

...