我尝试将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;
但仍然得到同样的错误。
我该怎么办?
答案 0 :(得分:0)
在SignalR小组看来,这是在http://localhost:port,但不在文件:/// C:/Users/me/Documents/index.html上,这是正常的。