OWINがホストされたWebAPI 2
を作成しました。 APIを使用してクライアントとして機能するウェブアプリ(AngularJS
)もあります。Azure Web App/Azure APIにデプロイするとCORSヘッダーが見つからない
にCORS
の必要なコードを追加し、クライアントとは異なるポートでローカルIISにホストし、Cors
問題を修正したことを確認しました。
私は両方のアプリケーションをAzureに配備しました(私はWebアプリケーションとしてAzureに両方を配置しましたが、現在はプレビューされているAzure APIにOWINを入れてみました)。応答にはAccess-Control-Allow-Origin
が存在しません)。
Q:私は知らないいくつかの具体的なアズールはありますか?どのようにOWINは配備時にこのヘッダーを提供していませんが、localhostで動作していますか?私はアプリのAzureブレード設定のプロパティウィンドウに何らの制約も見ません。
注:私が使用しているセットアップのいくつかの詳細について
:
Owin
、WebAPI2
、Ninject
を使用して、SignalR
- カスタムトークンは、後続の各リクエストのヘッダに発行され、提供されカスタムフィルタで確認されます。また、私がサポートするために、
web.config
から次の行をコメントアウトしましpublic void Configuration(IAppBuilder appBuilder) { appBuilder.UseCors(CorsOptions.AllowAll); HttpConfiguration config = new HttpConfiguration(); config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; //bind IClientsNotifier with method returning singleton instance of hub var ninjectKernel = NinjectWebCommon.GetKernel(); ninjectKernel.Bind<MySignalRHub>().ToSelf().InSingletonScope(); ninjectKernel.Bind<QueryStringBearerAuthorizeAttribute>().ToSelf(); GlobalHost.DependencyResolver = new NinjectSignalRDependencyResolver(ninjectKernel); appBuilder.Map( "/signalr", map => { map.UseCors(CorsOptions.AllowAll); var hubConfiguration = new HubConfiguration(); map.RunSignalR(hubConfiguration); }); config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); config.Formatters.Remove(config.Formatters.XmlFormatter); config.Filters.Add(new NoCacheHeaderFilter()); //the IE9 fix for cache var resolver = new NinjectDependencyResolver(NinjectWebCommon.GetKernel()); config.Filters.Add((System.Web.Http.Filters.IFilter)resolver.GetService(typeof(WebApiAuthenticationFilter))); appBuilder.UseNinjectMiddleware(NinjectWebCommon.GetKernel); appBuilder.UseNinjectWebApi(config); }
:私は今のところしようとしています
- CORSは
*
Startup.csの関連する部分であります私が行ったOPTIONS
HTTPリクエスト(そうでない場合、それはHTTPエラー405を投げていた)最後に
<system.webServer>
<handlers>
<!--<remove name="OPTIONSVerbHandler" />-->
...
ニースが見つかりました...しかし、リストはすでに空であり、CORSヘッダーのコード出力は引き続き解消されています...なぜか何か手掛かりがありますか? (CORSがweb.configにあるときはすべて動作することに注意してください) – veljkoz
私はweb.config CORSヘッダでこの動作を確認しました。ポータルブレードに許可されたオリジンが設定されていない場合、ヘッダーは保持されます。少なくとも1つの許可された発信元が設定されている場合、web.config CORSヘッダーは閉じられます。あなたのWeb APIのCORSコード(appBuilder.UseCors(CorsOptions.AllowAll);)と同じでなければなりません。 –
こんにちは、私はAzure Corsを動かすことができません。あなたができるように聞こえます。私の質問はここにあります。https://stackoverflow.com/questions/41541917/azure-webapp-cors-does-not-add- cors-headers – Rodney