SignalR、ASP.NET 5 和 CORS
SignalR, ASP.NET 5 and CORS
我正在尝试将 SignalR 与我的 MVC6 应用程序一起使用,但我遇到了 CORS 问题。
首先:如果我在 http://localhost:1234/index.html 上托管我的 index.html 文件(与我的网络应用程序相同),它就可以正常工作。
但是当我在别处托管它时(例如在 file:///C:/Users/me/Documents/index.html),我有这个错误:
No 'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'null' is therefore not allowed access.
当然,我尝试启用 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();
}
}
但是现在,我又遇到了另一个错误:
A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin'
header when the credentials flag is true. Origin 'null' is therefore
not allowed access.
然后我试试 :
policy.SupportsCredentials = false;
但仍然出现同样的错误。
我该怎么办?
与 SignalR 团队一起看到,这正在 http://localhost:port 上工作,但不在 file:///C:/Users/me/Documents/index.html 上工作,这是正常的。
我正在尝试将 SignalR 与我的 MVC6 应用程序一起使用,但我遇到了 CORS 问题。
首先:如果我在 http://localhost:1234/index.html 上托管我的 index.html 文件(与我的网络应用程序相同),它就可以正常工作。 但是当我在别处托管它时(例如在 file:///C:/Users/me/Documents/index.html),我有这个错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
当然,我尝试启用 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();
}
}
但是现在,我又遇到了另一个错误:
A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'null' is therefore not allowed access.
然后我试试 :
policy.SupportsCredentials = false;
但仍然出现同样的错误。
我该怎么办?
与 SignalR 团队一起看到,这正在 http://localhost:port 上工作,但不在 file:///C:/Users/me/Documents/index.html 上工作,这是正常的。