SignalR, ASP.NET 5 and CORS



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

第一:如果我托管我的index.html文件http://localhost:1234/index.html(与我的web应用程序相同)它的工作。但是当我将它托管在其他地方时(例如在file:///C:/Users/me/Documents/index.html中),我有这个错误:

请求的文件中没有'Access-Control-Allow-Origin'标头资源。因此,不允许访问原点'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();
    }
}

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

通配符'*'不能在'Access-Control-Allow-Origin'中使用当凭据标志为真时。因此,原点'null'是不允许访问

然后我试试:

policy.SupportsCredentials = false;

但仍然得到相同的错误。

SignalR团队看到,这是在http://localhost:port上工作,而不是在文件:///C:/Users/me/Documents/index.html上,这是正常的

最新更新