Как я могу включить cors при использовании SignalR в asp.net mvc?

#asp.net-mvc-4 #signalr

#asp.net-mvc-4 #signalr

Вопрос:

Я использую SignalR в asp.net mvc для веб-api, и мне нужно включить cors в web.config.

 <add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, HEAD, OPTIONS" />
<add name="Access-Control-Allow-Credentials" value="true"/>
<add name="Access-Control-Allow-Headers" value="X-Requested-With, origin, content-type, accept" />
 

Но когда я собираюсь подключиться к SignalR, он отображает следующую ошибку:

заблокирован политикой CORS: ответ на предполетный запрос не проходит проверку контроля доступа: значение заголовка ‘Access-Control-Allow-Origin’ в ответе не должно быть шаблоном ‘*’, когда режим учетных данных запроса ‘включает

Следует за кодом в startup.cs:

 [EnableCors("CorsPolicy")]
public void Configuration(IAppBuilder app)
{
    app.MapSignalR();
}
 

Как я могу это исправить?

Ответ №1:

Как говорится в вашей ошибке:

Значение заголовка ‘Access-Control-Allow-Origin’ в ответе не должно быть шаблоном ‘*’.

И у вас есть:

 <add name="Access-Control-Allow-Origin" value="*" />
 

Итак, в этом случае вы должны указать источник, откуда вы подключаетесь. Если вы пытаетесь подключиться из внешнего интерфейса, вы можете использовать это в качестве примера:

 <add name="Access-Control-Allow-Origin" value="https://localhost:4200"/>