【发布时间】:2020-01-24 13:19:19
【问题描述】:
我在带有Angular 8 的ASP.NET MVC 项目中使用SignalR (v2.4.0) 并遇到“在'https:/demo.com/signalr/negotiate?clientProtocol=2.1&connectionData=' 处访问XMLHttpRequest from origin'@ 987654321@' 已被 CORS 策略阻止:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。” 调试时出错(在 PROD 阶段也出现类似错误)。我曾尝试在Setting Access-Control-Allow-Origin in ASP.Net MVC - simplest possible method 上应用修复,但其中大多数都不起作用或不是全局修复。我宁愿在 Global.asax 或 Startup.cs 中全局修复,而不是应用 Controller 阶段(我也尝试了 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>
【问题讨论】:
标签: c# angular asp.net-mvc cors signalr