http или https в пути запроса к серверу узла создает ошибку

Я пытаюсь заставить corsanywhere работать на Azure, и на самом деле это работает, если я запрашиваю что-то вроде этого:

https://myserver.azurewebsites.net/www.remoteserver.com/query=john

Но если я вызываю это, я получаю ошибку 500, и я не знаю, как ее отследить (в этом случае в журналах ошибок не возникает):

https://myserver.azurewebsites.net/http://www.remoteserver.com/query=john

Этот вид запросов хорошо работает на демонстрационном сайте corsanywhere или когда я запускаю приложение для узлов на своем компьютере разработчика.

Обновление: узлу в Azure требуется файл web.config. Вот мой:

<configuration>
<system.webServer>
      <handlers>
        <add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
      </handlers>
      <rewrite>
        <rules>
          <rule name="DynamicContent">
             <match url="/*" />
             <action type="Rewrite" url="server.js"/>
          </rule>
        </rules>
      </rewrite>
</system.webServer>
</configuration>

Мне интересно, может ли это быть виновником...

Спасибо за вашу помощь

1 ответ

Решение

В службе приложений Azure (ОС Windows) символы :/ не допускаются в пути URL. Это обсуждалось на SO раньше: веб-сайты Azure выдают ошибку 500, если в URL есть двоеточие.

Вы можете попробовать решение в ответе @TimBunting или разместить приложение в службе приложений Linux.

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