javascript signalR 客户端:尝试连接到 api 的 CORS 策略错误

javascript signalR client : CORS policy error trying to connect to api

我是一名 php/js 开发人员,不了解 c# /asp,第一次尝试与 signalR API 交谈

我尝试从官方 signalR 页面使用这个客户端库

https://github.com/SignalR/SignalR/wiki/SignalR-JS-Client

这是我的代码

<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.signalr-2.2.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {

        $.connection('https://firouzex.exphoenixtrade.com/realtime').start()
            .done(function(){
                 console.log('connection done!')
            })
            .fail(function(){
                console.log('error!');
            });


     });
</script>

但是我得到了

Access to XMLHttpRequest at 'https://firouzex.exphoenixtrade.com/realtime/negotiate?clientProtocol=1.5&_=1560862133617' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource

SignalR 的 Bower 包现已弃用,因为 Bower 本身现已弃用。请考虑迁移到 Yarn 或 NPM(由 bower 团队推荐) 这写在你使用的 signalR bower 包上。

您可以通过在浏览器中添加 cors 扩展来解决 CORS 问题,但我建议您考虑改用 https://github.com/SignalR/SignalR/wiki/SignalR-JS-Client

希望这对您有所帮助。

这似乎是服务器端关于如何设置 Signalr 的问题。如果你能访问那个,你能试试吗?

        public void Configuration(IAppBuilder app)
        {                
                app.Map("/signalr", map =>
                {
                    map.UseCors(CorsOptions.AllowAll);
                    var hubConfiguration = new HubConfiguration { };
                    map.RunSignalR(hubConfiguration);
                });
         }