我建立了一个简单的SignalR hub,它位于一个WebAPI服务内部。我已在WebAPI和SignalR上包含所有必需的CORS属性。我的WebAPI端点都按预期工作,但SignalR没有。
我尝试了我能想到的方法,并查找了在线资源,但什么都没用。我已尝试这个答案和另一个答案,但都没有解决方案。
我的SignalR扩展方法如下所示:
public static IAppBuilder UseSignalrNotificationService(this IAppBuilder app)
{
var config = new HubConfiguration();
config.Resolver = new HubDependencyResolver();
config.EnableDetailedErrors = true;
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR(config);
return app;
}
我甚至尝试使用Web.config在所有请求上添加响应头,但我始终收到相同的错误:
注意:请勿删除HTML标签。XMLHttpRequest无法加载https://MyApplicationServer/notifications/signalr/negotiate?clientProtocol=1.5&access_token=&connectionData=。当凭据标志为true时,“Access-Control-Allow-Origin”标头中不能使用通配符“*”。因此,“MyOriginService”不允许访问。 XMLHttpRequest的凭据模式由withCredentials属性控制。