节点服务器的请求路径中的 http 或 https 会产生错误
http or https in request path to a node server creates an error
我正在尝试让 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>
我想知道这是否是罪魁祸首...
感谢您的帮助
在 Azure 应用服务 (Windows OS) 中,URL 路径中不允许使用字符 :/
。之前在 SO 上讨论过:Azure websites throw 500 error when there is a colon in the URL.
您可以尝试@TimBunting 的回答中的解决方案,或者将您的应用程序托管在 Linux App Service 上。
我正在尝试让 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>
我想知道这是否是罪魁祸首...
感谢您的帮助
在 Azure 应用服务 (Windows OS) 中,URL 路径中不允许使用字符 :/
。之前在 SO 上讨论过:Azure websites throw 500 error when there is a colon in the URL.
您可以尝试@TimBunting 的回答中的解决方案,或者将您的应用程序托管在 Linux App Service 上。