Я использую SignalR (v2.4.0)
в ASP.NET MVC
проекте с Angular 8
и встречаю "Доступ к XMLHttpRequest по адресу https: /demo.com/signalr/negotiate? ClientProtocol = 2.1 & connectionData = 'from origin' http://localhost:20700' заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». " ошибка при отладке (также похожая ошибка на этапе PROD).Я пытался применить исправления к Настройка Access-Control-Allow-Origin в ASP.Net MVC - простейший возможный метод , но большинство из них не сработало или не является глобальным исправлением.Вместо применения этапа Controller, я бы предпочел глобальное исправление в Global.asax
или Startup.cs
(я также пробовал исправления web.config, но никогда не работал).Итак, есть ли глобальное исправление для этой проблемы?
Обновление: Вот моя конфигурация для решения проблемы:
Startup.cs:
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(Demo.Web.UI.App_Start.Startup))]
namespace Demo.Web.UI.App_Start
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
web.config:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://localhost:20700"/>
<add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS"/>
<add name="Access-Control-Allow-Headers" value="Content-Type"/>
</customHeaders>
</httpProtocol>
</system.webServer>