看到这个问题:Enable CORS on Azure Service Bus Namespace
真的,我想有一个仅前端的ReactJS应用程序,该应用程序与Azure API对话,并将结果的一部分呈现到屏幕上。然后从用户那里获取输入,并将其发送回Azure API。冲洗并重复。 不幸的是,CORS几乎有很多规则,您不能[1]覆盖ServiceBus命名空间的CORS规则。
因此,建议的解决方案是瘦代理服务器,代理Azure API,以规避CORS。
(非常欢迎您对此问题的替代解决方案!)
[1]读:我目前看不到任何方式,我的Google搜索也看不到。
另一个问题上的用户提出了相关的web.config文件,因此现在我想创建该代理服务器。我真的不希望该服务器做任何其他的事情,我希望它尽可能透明。
设置该服务器的最简单方法是什么?
我有点希望我能够做类似的事情: “告诉Azure我想要一个Web服务器,并将该web.config文本粘贴/上传到Azure门户中”?
如果有意义的话,当前我的堆栈实际上只有npm和JS Create-React-App模板的堆栈。我在想我们也将网站托管在Azure中。
答案 0 :(得分:0)
我可以使用它,而且非常轻松-Azure可以JustDoThis。
记录下我在这里为自己写的笔记,以备将来失去的流浪者:)
如链接的问题所述,Azure服务器没有(也不能)启用CORS,因此我们需要以某种方式绕开它。该方法是创建一个ReverseProxy服务器,该服务器接受请求,将其转发到Azure,接收响应,添加相关的CORS标头,然后将其返回给调用方。
此Microsoft博客:https://blogs.msdn.microsoft.com/mihansen/2018/04/18/reverse-proxy-with-basic-authentication-in-azure-web-app/
除了跳过“基本身份验证”步骤(步骤#3和#4)外,其余步骤\Home\site
中)web.config
文件吗?<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" />
</system.webServer>
</configuration>
步骤2是通过KUDU实现的,可在此处访问:
https://yourazuresitedomain.scm.azurewebsites.net/
一些有关KUDU是什么以及如何使用的链接: