[英]Enable CORS on Azure Mobile Serivce .NET Backend
我修改了一個ASP.NET Web API 2項目以使用Microsoft Azure Mobile Servies。 我正在開發一個Phonegap應用程序並使用我的桌面Chrome瀏覽器和本地運行的Azure移動服務對其進行測試。
在我“轉換”我的項目之前,我在我的啟動代碼中使用這行代碼處理CORS(需要NuGet包Microsoft.AspNet.WebApi.Cors):
#if DEBUG
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
#if DEBUG
config.MapHttpAttributeRoutes();
...
這就像一個魅力,Chrome的必需標題已寫入響應沒有問題。
現在使用Azure Mobile Serives,代碼如下所示:
public static void Register()
{
ConfigOptions options = new ConfigOptions();
HttpConfiguration config = ServiceConfig.Initialize(new ConfigBuilder(options));
#if DEBUG
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
#endif
}
現在我的CORS設置不再起作用,沒有標題存在。 在web.config中添加標題有效,但我更喜歡編程方法。
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
...
有任何想法嗎?
問題是CORS在ASP.NET Web API HttpConfiguration中使用了一個特殊的鈎子,.NET后端過早觸發,因此沒有初始化。
我們會解決這個問題,但這是一個解決方法:
你可以在這里找到一些示例代碼: https : //gist.github.com/HenrikFrystykNielsen/6c934be6c6c8fa9e4bc8
希望這可以幫助,
亨里克
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.