作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 angular 6 和 asp.net 核心上使用 SignalR 功能。但不断收到此错误 对预检请求的响应未通过访问控制检查:响应中“Access-Control-Allow-Credentials” header 的值为“”,当请求的凭据模式为“包含”时,该值必须为“真”。
研究了一下,发现是服务器端的CORS问题,所以修改了服务器代码。
启动.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.WithOrigins("http://localhost:4200");
}));
services.AddSignalR();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseCors("CorsPolicy");
app.UseSignalR(routes =>
{
routes.MapHub<SignalR>("/rule");
});
}
ngOnInit() {
this.callSignalR()
}
private callSignalR(): void {
// set up the signal R
let connection = new signalR.HubConnectionBuilder().withUrl(environment.baseUrl+"/rule").build();
//start the connection
connection.start().then(() => connection.invoke("updateRules", this.autheService.getCurrentuser.userId));
//Get the response from the server
connection.on("updateRules", data => {console.log(data);});
}
最佳答案
您必须为 cors-policy 提供凭据,因为 signalr 也在传递 cookie。
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials()
.WithOrigins("http://localhost:4200");
}));
services.AddSignalR();
}
关于c# - 对预检请求的响应未通过访问控制检查 : The value of the 'Access-Control-Allow-Credentials' header in the response is '' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51569826/
我是一名优秀的程序员,十分优秀!