WebAPI上的Cors问题
本文关键字:问题 Cors 上的 WebAPI | 更新日期: 2023-09-27 18:27:10
在WebAPI 上启用Cors
我在WebApiConfig.cs 中有这个集合
config.EnableCors();
这就是我的控制器方法的属性设置方式:
[EnableCors("http://dev.example.com,http://personal.example.com,http://www.example.com", // Origin
"Accept, Origin, Content-Type, Options", // Request headers
"POST", // HTTP methods
PreflightMaxAge = 600 // Preflight cache duration
)]
但我仍然得到错误:"‘访问控制允许来源’标题包含多个值。"
我还需要做些什么来防止这种情况发生?我们必须允许从所有三个领域。但是前两个是最后一个的子域。
在您的web.config文件中为cors设置了任何选项吗?即类似<add name="Access-Control-Allow-Origin" value="*"/>
的东西
如果是,请确保删除它,并仅通过代码控制cors。
编辑:好吧,这意味着无论请求命中哪个控制器,都要将头添加到响应中,如果请求命中具有EnableCors属性的控制器,它将添加另一个头。如果删除了Application_BeginRequest()中的一个,它应该可以工作,但这意味着你需要用EnableCors属性装饰所有其他控制器,这在你的情况下可能是可以接受的,否则,你需要添加一个DelegateHandler,在那里你可以检查请求并根据请求的控制器设置cors。看看这个http://georgedurzi.com/implementing-cross-browser-cors-support-for-asp-net-web-api/它可能有助于从DelegateHandlers开始。希望能有所帮助。