Azure функции прокси Неверный URI: noSlash - PullRequest
1 голос
/ 27 февраля 2020

Я пытаюсь использовать прокси-функцию Azure, чтобы разрешить CORS для API, к которому у меня нет доступа к серверу.

Я выполнил шаги, описанные в этой статье

У меня есть шаблон маршрута как /qless/{*rest}, а внутренний URL-адрес как https://merchant.us1.qless.com/qless/api/v1/{rest}, однако я получаю ответ: 400 (Invalid URI: noSlash).

Если я перехожу на использование Github API (как они делают в статье), он работает нормально.

Я гарантировал, что localhost (откуда я отправляю запрос) указан в настройках CORS функций.

Полный запрос то, что я посылаю, это: https://XXXXXXXXX.azurewebsites.net/qless/kiosk/location/XXXXXXXX/queues/, поэтому я не вижу, откуда берется дополнительный sla sh (как предполагает ответ). Я попытался удалить конечные и промежуточные слэши. Спасибо за вашу помощь.

Редактировать

Отправив заголовок Proxy-Trace-Enabled, я понял, что функция переписывает / как %2F - как я могу предотвратить это?

      {
        "source": "rewrite-uri",
        "timestamp": "2020-02-27T05:04:28.8777839Z",
        "elapsed": "00:00:00.2596935",
        "data": {
          "message": "Updated request URL per specified rewrite template.",
          "request": {
            "url": "https://merchant.us1.qless.com/qless/api/v1/kiosk%2Flocations%2FXXXXXXXXXX/"
          }
        }
      }

1 Ответ

1 голос
/ 27 февраля 2020

Нашел решение в этом выпуске

Установите AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES в качестве настройки приложения на true (по умолчанию false), что задокументировано здесь

...