SignalR,ASP.NET 5和CORS

时间:2015-05-31 20:10:34

标签: signalr cors asp.net-core

我尝试将SignalR与我的MVC6应用程序一起使用,但我遇到了CORS的问题。

首先:如果我在http://localhost:1234/index.html上托管我的index.html文件(与我的网络应用程序相同),那么它正在运行。 但是当我在其他地方托管它时(例如在file:/// C:/Users/me/Documents/index.html中),我有这个错误:

  

否'访问控制 - 允许 - 来源'标题出现在请求的上   资源。起源' null'因此不允许访问。

当然,我尝试启用CORS,这是我的启动文件:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddSignalR();

        services.AddCors();
        var policy = new Microsoft.AspNet.Cors.Core.CorsPolicy();
        policy.Origins.Add("*");
        policy.Headers.Add("*");
        policy.Methods.Add("*");
        services.ConfigureCors(x => x.AddPolicy("allowall", policy));
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseCors("allowall");
        app.UseSignalR();
        app.UseMvc();
    }
}

但是现在,我还有另一个错误:

  

通配符' *'不能用于“访问控制 - 允许 - 来源”#39;   凭证标志为true时的标头。起源' null'因此   不允许访问。

然后我尝试:

policy.SupportsCredentials = false;

但仍然得到同样的错误。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

在SignalR小组看来,这是在http://localhost:port,但不在文件:/// C:/Users/me/Documents/index.html上,这是正常的。