javascript signalR 客户端:尝试连接到 API 时出现 CORS 策略错误



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

这似乎是服务器端关于如何设置信号器的问题。如果你可以访问它,你可以试试吗?

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

SignalR 的 Bower 包现已弃用,因为 Bower 本身现已弃用。请考虑迁移到 Yarn 或 NPM(根据 bower 团队的建议) 这是写在你正在使用的信号R鲍尔包上。

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

希望这有帮助。

最新更新