【发布时间】:2018-07-31 09:02:35
【问题描述】:
我们将 SignalR 核心与 CORS 跨域请求一起使用。客户端无法连接到服务器。 401 Unauthorized No Access-Control-Allow-Origin' 标头出现在请求的资源上。错误:无法启动连接。请注意,我们使用的是最新的信号器核心(asp.net core 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();
请指教。
【问题讨论】:
-
请注意,在同一个客户端应用程序中,我可以访问 CORS Web API 方法。它与 SignalR 集线器/客户端隔离。
-
检查以确保您没有收到另一个错误。很多时候,错误响应(例如,如果是 401)将无法通过 CORS 检查,但根本原因不是 CORS
标签: asp.net-core cors asp.net-core-2.0 unauthorized asp.net-core-signalr