Azure Front Door - перенаправление маршрутизации возвращает метод 405 Не разрешен, но только при прохождении через парадную дверь - PullRequest
0 голосов
/ 02 апреля 2020

Попытка следующей маршрутизации с помощью Azure Front Door:

Предположим, что URL Front Door имеет значение https://foo.azurefd.net, а пул бэкэнда состоит из Azure Web App с URL https://foowebapp.azurewebsites.net.

Я создал правило маршрутизации следующим образом:

Пользователь передает POST: https://foo.azurefd.net/api/token/12345

Я хочу, чтобы это было перенаправлено на POST: https://foowebapp.azurewebsites.net/api/token

Я создал правило, используя тип маршрута Redirect. Проблема в том, что я получаю метод 405, не разрешенный при прохождении через парадную дверь. Если я перейду непосредственно к конечной точке https://foowebapp.azurewebsites.net/api/token, я получу ожидаемый ответ.

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

РЕДАКТИРОВАТЬ: Теперь я вижу, анализируя трафик c, что парадная дверь меняет метод с POST на GET во время перенаправления. Вот почему я получаю ошибку 405 Method Not Allowed. Но я не понимаю, почему Front Door изменил бы его с POST на GET. Все настроено только на HTTPS. Я поднял это с поддержкой Azure, но не уверен, что ожидаю от них большой помощи.

1 Ответ

0 голосов
/ 03 апреля 2020

Разобрался. По умолчанию перенаправление передней двери установлено на тип 302 (найдено). Этот вид перенаправления всегда будет заменять любой не-GET метод на GET. Использование 307 (временное перенаправление) или 308 (постоянное перенаправление) позволит передать вызов без изменения метода.

...