【问题标题】:javascript signalR client : CORS policy error trying to connect to apijavascript signalR客户端:尝试连接到api的CORS策略错误
【发布时间】:2019-06-15 13:55:30
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

  • 不,我无权访问服务器端代码,我不拥有 api
  • 如果 api 服务器未配置为接受来自您的源 (CORS) 的请求,您将无能为力,如果服务器不可配置,则您必须联系有权访问服务器的人解决这个问题
【解决方案2】:

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

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

希望这会有所帮助。

【讨论】:

猜你喜欢
  • 2021-09-05
  • 2016-05-17
  • 2020-05-02
  • 1970-01-01
  • 2020-12-18
  • 1970-01-01
  • 1970-01-01
  • 2020-06-30
  • 2014-10-05
相关资源
最近更新 更多