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.