|
問題の説明 MVCやWeb API ASP.NET 書かれたサービス ASP.NET クロスドメインコールが行われると、アクセス不能になります。 繁殖方法
原因分析 クロスドメイン問題の根本的な理由は、ブラウザが両方のリクエストに対して低い権限を持ち、通常はローカルドメインのリソースへの呼び出しのみを許可し、ターゲットサーバーが明確にクロスドメインコールを許可しない限り例外であることにあります。 したがって、クロスドメイン問題はブラウザの挙動によって引き起こされますが、解決策はサーバー側にあります。 すべてのクライアントにセキュリティを下げることを義務付けることは不可能だからです。
解決 MVCと ASP.NET ASP.NET Web APIの両方のプロジェクトタイプについて調べた結果、以下のシナリオが実現可能だと判断しました。 ASP.NET MVCの場合は、web.configに以下の内容を追加するだけで済みます
ASP.NET Web APIについては、上記の設定に加えて、各APIコントローラーごとにOPTIONSメソッドを追加する特別な設計が必要ですが、何も返さずに。 パブリック文字列オプション() { nullを返します; HTTP 200 レスポンス(空体付き) }
注意:この機能は調査すれば実現可能で、フィルターとして設計した方が良い場合もあります。
|