4

ServiceStackのテスト中に有名な問題に遭遇した後、問題をよりよく理解するためにCORSAccess-Control-Allow-Originについてたくさん読んだ。私もこの非常に役立つSOの質問に出くわしました。

しかし、そこでの解決策は私にはうまくいきませんでした。プラグインを含め、CorsFeatureエンドポイント構成を手動で設定しようとしましたが、両方の方法を試した後、サーバーから返される応答ヘッダーにヘッダーが含まれていないことがAccess-Control-Allow-*わかり、問題が解決しませんでした。

私は私のために働くことになった別の解決策を試しました(ここでは関係のない他のいくつかの問題を介して)。サービスのweb.configに以下を追加しました。

<system.webServer>
  [...snip...]
  <httpProtocol>
    <customHeaders>
      <clear />
      <add name="Access-Control-Allow-Origin" value="*" />
      <add name="Access-Control-Allow-Headers" value="Content-Type" />
      <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

(他の読者は、これはIIS7 +でのみ機能することに注意してください。他のサーバーでCORSを有効にする方法の詳細については、 http://enable-cors.org/を参照してください)

私の質問は、このweb.configメソッドを使用してヘッダーを作成できたのに、ServiceStackの組み込みCORSサポートを使用できなかったのはなぜですか?どこかに欠けている設定設定はありますか?

4

1 に答える 1

2

私は@mythzのSOの回答をもっと見直していて、これに出くわしました。理由は (まだ) よくわかりませんが、その要求フィルター (および CorsFeature プラグイン) を追加すると、すべてが期待どおりに機能するようになりました。プリフライト OPTIONS リクエストでエラーが発生したり、GET および POST でオリジン エラーが発生したりしません。

要するに、私の最終的な解決策は、その投稿の mythz の回答からコードを my にコピーし、 web.config カスタムヘッダーAppHost.Configure()を削除することでした。(web.config からカスタム ヘッダーを削除する前に、実際にはヘッダーが 2 倍になっていました!)

于 2013-02-06T20:07:26.077 に答える