3

私は約 130 のホワイト ラベル Web サイトをすべて異なるドメインに持っていますが、それぞれのフォームはすべて共通のエンドポイントに投稿する必要があります。Cross Origin Request Sharing を使用してこれを達成しようとしています。

セキュリティを考えると使いたくない…

Access-Control-Allow-Origin: *

したがって、許可するドメインのコンマ区切りリストを作成しようとしています。

Access-Control-Allow-Origin: http://www.myfirstdomain.com,http://www.myseconddomain.com....

バックエンドでこれを実現するために、ASP.Net Web API ソリューションをセットアップし、System.Web.Http.Corsライブラリを使用して「アプリケーションの開始」時にこれらのドメインを定義することで、上記を実現しようとしています。

私の「アプリケーション開始」コードは次のようになります..

public static void Register(HttpConfiguration config)
    {
        var domains = "http://www.myfirstdomain.com,http://www.myseconddomain.co.uk .... about 130 domains more..";
        config.EnableCors(new EnableCorsAttribute(domains, "*", "*"));

これをテストしているドメインは、そのコンマ区切りのリストに約 110 個のドメインがあり、jQuery ajax の投稿を試みると、最初に OPTIONS メソッドが期待どおりに呼び出されますが (リクエストが許可されているかどうかを判断するため)、Originというエラーが返されますhttp://www.mytestdomain.comは Access-Control-Allow-Origin で許可されていません。

ただし、カンマ区切りの文字列を変更して自分のドメインのみ、または 2 つまたは 3 つのドメインのみを含めると、OPTIONS は 200 応答を返し、POST を許可します。

これが予想される動作なのか、どこが間違っているのかわかる人はいますか?

4

1 に答える 1

2

解決策は、データベースに末尾にスペースがある不正なドメインがあったことでした。したがって、EnableCorsAttribute に渡されると問題が発生するため、データには注意してください。

于 2013-11-13T15:34:02.293 に答える