在web.config文件中是否允许使用Access-Control-Allow-Origin的多个跨域?
目前我正在使用*
一次允许多个域。
<add name="Access-Control-Allow-Origin" value="*" />
但我不想使用*
因为它对所有域开放,我只想允许某些特定域名。
那么,无论如何,在web.config文件中使用Access-Control-Allow-Origin允许多个跨域?
我找到了一些相关的帖子:
我已经尝试获取请求标头以验证请求来源(如第1篇建议),但未成功。因为我使用的是iframe元素,所以当我尝试获取请求标头时,它会提供iframe的原点(域)。但在这里我想要原始(父窗口)原点(域)。
答案 0 :(得分:1)
对于IIS 7.5+,您可以使用IIS CORS模块:https://www.iis.net/downloads/microsoft/iis-cors-module
您的web.config应该像这样,为您的域替换[origin _#]:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<cors enabled="true" failUnlistedOrigins="true">
<add origin="[origin_1]">
<allowMethods>
<add method="GET" />
<add method="HEAD" />
<add method="POST" />
<add method="PUT" />
<add method="DELETE" />
</allowMethods>
</add>
<add origin="[origin_2]">
<allowMethods>
<add method="GET" />
<add method="HEAD" />
<add method="POST" />
<add method="PUT" />
<add method="DELETE" />
</allowMethods>
</add>
</cors>
</system.webServer>
</configuration>
您可以在以下位置找到配置参考:https://docs.microsoft.com/en-us/iis/extensions/cors-module/cors-module-configuration-reference
答案 1 :(得分:0)
我认为第一种方法应该有用,但让我们仔细看看iframe
问题
是否可以获取iframe父文档?是的,这是可能的。
如果您选中this,则会发现document.referrer应该在您的iframe中有效。
因此第一个解决方案应该是有效的。