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" />
しかし、どれも機能しません。正しい構文は何ですか?
ベストアンサー1
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)。Rewrite では、ダッシュ "-" の代わりにアンダースコア "_" が使用されます (rewrite ではダッシュに変換されます)。
サーバー変数の説明HTTP_ORIGIN
:
同様に、Rewrite では、プレフィックスとして使用して任意のリクエスト ヘッダーを取得できますHTTP_
。ダッシュの場合も同じルールが適用されます (ダッシュ "-" の代わりにアンダースコア "_" を使用します)。