gpt4 book ai didi

asp.net - 具有多个域的访问控制允许来源

转载 作者:IT王子 更新时间:2023-10-29 03:37:30 27 4
gpt4 key购买 nike

在我的 web.config 中,我想为 access-control-allow-origin 指令指定多个域。我不想使用 *。我试过这种语法:

<add name="Access-Control-Allow-Origin" value="http://localhost:1506, http://localhost:1502" />

这个

<add name="Access-Control-Allow-Origin" value="http://localhost:1506 http://localhost:1502" />

这个

<add name="Access-Control-Allow-Origin" value="http://localhost:1506; http://localhost:1502" />

还有这个

<add name="Access-Control-Allow-Origin" value="http://localhost:1506" />
<add name="Access-Control-Allow-Origin" value="http://localhost:1502" />

但它们都不起作用。什么是正确的语法?

最佳答案

对于 IIS 7.5+ 和 Rewrite 2.0,您可以使用:

<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
<add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS,PUT,DELETE" />
</customHeaders>
</httpProtocol>
<rewrite>
<outboundRules>
<clear />
<rule name="AddCrossDomainHeader">
<match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{HTTP_ORIGIN}" pattern="(http(s)?://((.+\.)?domain1\.com|(.+\.)?domain2\.com|(.+\.)?domain3\.com))" />
</conditions>
<action type="Rewrite" value="{C:0}" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>

解释服务器变量RESPONSE_Access_Control_Allow_Origin部分:
在 Rewrite 中,您可以在 RESPONSE_ 之后使用任何字符串,它将使用单词的其余部分作为标题名称(在本例中为 Access-Control-Allow-Origin)来创建响应标题。重写使用下划线“_”而不是破折号“-”(重写将它们转换为破折号)

解释服务器变量HTTP_ORIGIN :
同样,在 Rewrite 中,您可以使用 HTTP_ 作为前缀来获取任何请求 header 。破折号的规则相同(使用下划线“_”而不是破折号“-”)。

关于asp.net - 具有多个域的访问控制允许来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17323350/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com