我有一个带vuejs模板的asp.net核心应用程序。
现在,我尝试将signalR添加到客户端应用程序的当前状态是:我的后端和前端运行在同一URL(后端运行前端服务器)中,并且此URL尝试连接到Signalr客户端中心,这会导致此错误
Access to XMLHttpRequest at 'http://xxx:FronEndPort/notification-hub/negotiate' from origin 'https://xxx:BackEndPort' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
问题是如何在客户端启用cors来解决此问题
答案 0 :(得分:0)
从原点“ http://xxx:FronEndPort/notification-hub/negotiate”到“ https://xxx:BackEndPort”处对XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否'Access-Control-Allow-来源的标头出现在请求的资源上。
似乎您想从http://xxx:FronEndPort上托管的浏览器客户端访问并连接到https://xxx:BackEndPort上托管的SignalR集线器,但是托管在http://xxx:FronEndPort上的应用程序的CORS策略阻止了它。
您可以为http://xxx:FronEndPort上托管的SignalR应用配置CORS,以允许源https://xxx:BackEndPort,如下所示。
app.UseCors(builder =>
{
builder.WithOrigins("https://xxx:BackEndPort")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});