【发布时间】:2019-11-24 12:58:03
【问题描述】:
错误: 从源“http://localhost:4200”访问“http://localhost:7078/websync.ashx?token=1&src=js&AspxAutoDetectCookieSupport=1”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”标头包含多个值“ http://localhost:4200, *',但只允许一个。
目标: 能够将变量从 SiteA 发送到 SiteB。
(SiteB 托管一个出现在 SiteA 上的 iframe。SiteA 托管 angular 和 asp.net webapi。SiteB 是聊天服务器)
这些是当前设置。我需要 web.config 和 global.asax.cs 文件吗?从我的设置中具体导致上述错误的原因是什么? 据我了解,当它设置在多个地方时会发生这种情况。 是否在 web.config 和 asax.cs 中有它导致该问题?
我已经阅读了很多关于 HttpResponse 和 CORS 的文档,但我觉得我在这里遗漏了一些内容:
SiteA\Web.config:
<add name="Access-Control-Allow-Origin" value="*" />
SiteA\Global.asax.cs:
response.AddHeader("Access-Control-Allow-Headers", "access-control-allow-origin,accept,x-api-applicationid,content-type,authorization");
SiteB\Web.config:
<add name="Access-Control-Allow-Origin" value="*" />
【问题讨论】:
-
你使用的是 MVC 还是 web api?
-
WebAPI。 stackoverflow.com/a/10892392/11187561 是说这不能在我的虚拟机上的本地主机上完成?
-
在您的 webapiconfig 中将此行添加到注册方法 config.EnableCors();