【发布时间】:2019-01-19 15:50:44
【问题描述】:
我正在尝试为我的 aspnetcore 2.1 应用程序配置 CORS。我已密切关注文档。我的启动文件配置如下。
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options => options
.AddPolicy("CorsPolicy", builder =>
{
builder.WithOrigins("http://sitetracker")
.AllowAnyHeader();
}));
services.AddMvc();
services.AddSignalR(o => o.EnableDetailedErrors = true);
services.AddDbContext<BiometricContext>();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseCors("CorsPolicy");
app.UseSignalR(routes =>
{
routes.MapHub<BiometricsHub<User>>("/biometricshub");
});
app.UseMvc();
}
我配置了 Angular 项目以启动集线器连接并等待服务器将一些信息推送到客户端。
var port = 58422;
this.connection = new HubConnectionBuilder()
.withUrl(`http://localhost:${port}/BiometricsHub`)
.configureLogging(LogLevel.Information)
.build();
this.connection.on("ReceiveActiveIdentities", (identities) => {
debugger // Waiting here to receive data
});
this.connection.start().catch(err => {
debugger // Error is "Error" with and error code of 0
console.error(err.toString());
});
调用connection.start时出错。
由于我无法弄清楚发生 cors 错误的原因,我想知道代码是否以其他方式损坏。我通过在运行菜单中执行以下行来禁用浏览器会话中的 cors 安全性。
chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
一旦 CORS 被禁用,代码将按预期在我的客户端回调中返回数据。这让我相信我的 CORS 配置之外的一切都是正确的。
我的配置中缺少什么?我仍然无法让它工作。
【问题讨论】:
标签: model-view-controller asp.net-core cors signalr