signalR CORS - IE客户端获得403'禁止访问:JSONP被禁用'

dev*_*eek 2 cors http-status-code-403 signalr

我们实现了启用CORS的SignalR 2.0集线器.Firefox和Chrome上的Javascript客户端运行正常.IE 10获得错误403.

任何帮助将不胜感激.谢谢你,问候.

hal*_*r73 5

虽然IE 10(但不是IE≤9)应支持CORS,但如果您发现自己需要使用JSONP,则可以在调用时启用它MapSignalR.

启用JSONP允许在发送cookie /凭证时从任何来源访问您的SignalR应用程序.使用CORS,您可以限制哪些来源可以访问您的SignalR应用程序,无论是否应使用跨源请求发送cookie /凭证等.由于无法将JSONP配置为与CORS可能实现的更细粒度的安全策略相匹配,因此必须单独启用JSONP:

app.MapSignalR(new HubConfiguration 
{
    // You can enable JSONP by uncommenting line below.
    // JSONP requests are insecure but some older browsers (and some
    // versions of IE) require JSONP to work cross domain
    EnableJSONP = true
});
Run Code Online (Sandbox Code Playgroud)

如果您使用的是PersistentConnection替换HubConfigurationConnectionConfiguration.

您可以在此处了解有关建立跨域SignalR连接的更多信息.