SignalRでCORS(Cross-Origin Resource Sharing)が出るときの対策

最近FirefoxOSハッカソンに参加して、SignalRを使う時に毎回CORS(Cross-Origin Resource Sharing)でハマってる気がするのでブログに残す。

流れ?としては以下の通り

    • Visual StudioからWebサイトでASP.NET MVCにSignalRを追加
    • ローカル、もしくはサーバーにデプロイして対応したページを表示
    • ページのソースを表示して、/signalr/hubsのコードコピペしてローカルに保存
    • 保存したコードの最後の方にあるアドレスを修正
      signalR.hub = $.hubConnection("http://hoge.azurewebsites.net/signalr", { useDefaultPath: false });
    • Visual Studioのツール→NuGetパッケージマネージャー→パッケージマネージャーコンソール
    • Install-Package Microsoft.Owin.Cors
    • Startup.csを以下のように修正
      using Owin;
      using Microsoft.Owin;
      using Microsoft.Owin.Cors;
      using Microsoft.AspNet.SignalR;
      
      [assembly: OwinStartup(typeof(SignalRChat.Startup))]
      namespace SignalRChat
      {
      	public class Startup
      	{
      		public void Configuration(IAppBuilder app)
      		{
      			app.Map("/signalr", map =>
      			{
      				map.UseCors(CorsOptions.AllowAll);
      				var hubConfiguration = new HubConfiguration
      				{
      
      				};
      				map.RunSignalR(hubConfiguration);
      			});
      		}
      	}
      }
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中