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

时间:2019-06-15 13:55:30

标签: javascript c# asp.net node.js signalr

我是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

2 个答案:

答案 0 :(得分:2)

这似乎是服务器端如何设置Signalr的问题。如果可以访问,可以尝试吗?

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

答案 1 :(得分:-1)

由于不建议使用Bower本身,因此不建议使用SignalR的Bower软件包。请考虑迁移到Yarn或NPM(根据Bower团队的建议) 这写在您使用的signalR Bower软件包上。

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

希望这会有所帮助。