簡體   English   中英

.NetCore SignalR CORS不允許客戶端調用

[英].NetCore SignalR CORS is not allowing client calls

在我的.Netcore應用程序中,我使用SingalR將消息傳遞給不同的客戶端

我的代碼是這樣的

      services.AddCors( options =>
                          {
                              options.AddPolicy( "mypolicy", builder =>
                                                 {
                                                     builder.AllowAnyHeader();
                                                     builder.AllowAnyMethod();
                                                     builder.AllowAnyOrigin();
                                                     builder.AllowCredentials();
                                                 } );
                          } );

        services.AddMvc();
        services.Configure<MvcOptions>( options => { options.Filters.Add( new CorsAuthorizationFilterFactory( "mypolicy" ) ); } );
        services.Configure<SignalROptions>( options => options.Hubs.EnableDetailedErrors = true );

我的.Netcore應用程序在此處運行http:// localhost:88,而我正在通過http:// localhost訪問它

如果我嘗試使用

        builder.WithOrigins("http://localhost");

我能夠訪問SignalR服務。 我的問題是,我將從不同的客戶端訪問.NetCore應用程序,這意味着從不同的客戶端域訪問,因此實際上不可能在WithOrgins中添加所有這些客戶端。

所以builder.AllowAnyOrigin(); 對我來說是最好的解決方案。

誰能告訴我如何實現它。

您應該調用app.UseCors()方法,該方法通過CORS中間件將CORS策略應用於所有應用程序端點。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
       app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseHsts();
    }

    app.UseCors(); 

    app.UseHttpsRedirection();
    app.UseMvc();
}

有關cors的更多信息,請點擊這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM