[英]Enable CORS on Azure Service Bus Namespace
我想在JavaScript中使用Azure Service Bus REST API。 不幸的是,我遇到了跨源問題,因為我的Service Bus名稱空間與我的站點不在同一個域中。
我知道您可以為許多Azure服務啟用CORS,但是我無法在Azure文檔或其他地方找到任何資源來告訴我如何為服務總線執行此操作。
有人知道是否以及如何做到這一點?
我已經通過使用下面的Web.config
創建一個單獨的Web應用程序(一個簡單的代理)解決了這個問題。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Proxy" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{CACHE_URL}" pattern=".*" />
</conditions>
<action type="Rewrite" url="https://mynamespace.servicebus.windows.net/{R:0}" logRewrittenUrl="true" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="" />
</serverVariables>
</rule>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Expose-Headers" value="BrokerProperties" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
默認情況下,Azure Service Bus REST API支持CORS。 接受所有來源。
老實說,這不是Azure特定的。 如果您使用的是jQuery,則需要啟用跨域請求選項,請在http://api.jquery.com/jQuery.ajax/中閱讀更多信息。 還有一個JavaScript ServiceBus SDK: https : //github.com/ddobric/ServiceBusJavaScriptSdk
通常,從純粹的角度來看,從客戶端調用Service Bus看起來不太好,我寧願將該調用包裝到您自己的API中。 但我不知道您的情況,這可能是有效的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.