gpt4 book ai didi

asp.net-core - SignalR 核心和跨域请求问题

转载 作者:行者123 更新时间:2023-12-02 05:16:14 27 4
gpt4 key购买 nike

我们将 SignalR 核心与 CORS 跨域请求结合使用。客户端无法连接到服务器。 401 Unauthorized 请求的资源上不存在 Access-Control-Allow-Origin' header 。错误:无法启动连接。请注意,我们使用的是最新的 signalr 核心(asp.net 核心 2.0 的 alpha 版本)。

请注意,在同一个客户端应用程序中,我能够访问 CORS Web API 方法。它与 SignalR 集线器/客户端隔离。

我们在 IIS 中使用 Windows 身份验证。匿名似乎在工作。

服务器启动.cs:

ConfigureServices() 方法

services.AddCors();
services.AddSignalR();

配置方法

app.UseCors(x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials());
app.UseSignalR(routes =>
{
routes.MapHub<TestHub>("test");
});
app.UseMvc();

javascript 客户端:

let connection = new signalR.HubConnection(CORS_WEB_API_URL + '/test');
connection.on('send', data => {
console.log(data);
});
connection.start();

请指教。

最佳答案

我知道这是一篇旧文章,但是,答案是,对于 SignalR,您不能在 CORS 允许来源中使用通配符。

需要具体。对于开发,我使用这个:

        services.AddCors(options => options.AddPolicy("CorsDev", builder =>
{
builder
.AllowAnyMethod()
.AllowAnyHeader()
.WithOrigins(AppSettings.SPAHost, "http://localhost:8099")
.AllowCredentials();
}));

然后在startup.cs中Configure

app.UseCors("CorsDev");

希望这对某人有帮助。

关于asp.net-core - SignalR 核心和跨域请求问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48894774/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com