我是一名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。
希望这有帮助。