我正在尝试使用SignalR与我的MVC6应用程序,但我遇到了CORS问题。
第一:如果我托管我的index.html文件http://localhost:1234/index.html(与我的web应用程序相同)它的工作。但是当我将它托管在其他地方时(例如在file:///C:/Users/me/Documents/index.html中),我有这个错误:
当然,我尝试启用CORS,这是我的启动文件:请求的文件中没有'Access-Control-Allow-Origin'标头资源。因此,不允许访问原点'null'。
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上,这是正常的