Spring MVC CORSクロスドメイン


紹介する
クロスドメインCORSは、全称「クロスドメイン資源共有」(Cross-orign resource shring)です。
ページがドメインをまたぐ要求を出す時:
1、簡単なお願い(まずは正常なget/postと簡単に理解してください):
ブラウザは要求されたアドレスをheaderのOriginに追加して要求を送ります。次は楽屋次第です。
2、簡単なお願いではないです。
ブラウザは先に事前検査要求(preflight)、つまりOPTTIONSの要求を送ります。サーバーはアクセス許可とサポートの要求方式を返します。ブラウザは要求を出すかどうかを決定します。
@CrossOriginを使って注釈を付ける
使い方は簡単です。controlerや方法に注解を加えるだけでいいです。controller上でcontroller全体を表す方法でクロスドメインをサポートします。

@Controller
public class HomeController {
 @CrossOrigin
 @RequestMapping("/")
 public String Index() {
  return "Index";
 }
}
パラメータの説明
  • origgins:ドメインをまたぐことができる住所を表します。
    前のhttp(s)は必ず加えて、デフォルト*は全部
  • を表します。
  • value:origginsの別名は
  • です。
  • allowedHeaders:OPTTIONS要求において、戻るAccess-Coontrol-Alllow-Headers
    このパラメータは、クライアントが送信するしかないheaderパラメータを限定しており、この範囲でブラウザが要求を出すのを阻止しない。デフォルト*
  • exposedHeaders:Access-Coontrol-Expose-Headersに対応します。
    このフィールドはオプションです。CORS要求時、XMLHttpRequestオブジェクトのget RespnseHeader()方法は6つの基本フィールドしか入手できません。他のフィールドを入手するには、Access-Coontrol-Expose-Headersで指定しなければなりません。上記の例で指定したように、get ResoponseHeader('FooBar')は、FooBarフィールドの値を返します。
  • methods:許可された要求方法、例えばget、postのような
  • allowCredentials:Access-Coontrol-Alllow-Chredentialsに対応するフィールドはオプションです。その値は、Cookieの送信が許可されているかどうかを示すブール値である。デフォルトの場合、CookieはCORS要求に含まれない。trueに設定すると、すなわちサーバの明確な許可を表し、Cookieは要求に含まれて、一緒にサーバに送信することができます。この値はtrueにしか設定できません。サーバがブラウザでCookieを送信しないなら、このフィールドを削除すればいいです。
  • maxAge:Access-Coontrol-Myx-Ageに対応して、事前検査要求の有効期間(秒)を指定し、有効期限内に事前検査要求を送信しないで直接要求します。標準1800秒、つまり30分です。
  • springプロファイルを使う
    これは全体の構成に適しています。対応するフィールドはCrossOriginと同じです。pathは、ドメインをまたぐことを許可するパスを表します。
    
    <mvc:cors>
     <mvc:mapping path="/**" allowed-methods="*"/>
    </mvc:cors>
    以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。