Spring+CORSによるドメイン間問題の解決


直接乾物:
1.spring 4.1および以前のバージョンではフィルタを使用して解決
まずpomでxml導入jarパッケージ
  
		
		    com.thetransactioncompany
		    java-property-utils
		    1.10
		
		 
		
		    com.thetransactioncompany
		    cors-filter
		    2.6
		

そしてweb.xmlでのフィルタの構成
 
  
		     
		CORS
		com.thetransactioncompany.cors.CORSFilter
		
			cors.allowOrigin
			*
		
		
			cors.supportedMethods
			GET, POST, HEAD, PUT, DELETE
		
		
			cors.supportedHeaders
			Accept, Origin, X-Requested-With, Content-Type, Last-Modified
		
		
			cors.exposedHeaders
			Set-Cookie
		
		
			cors.supportsCredentials
			true
		
	

	
		CORS
		/apps/*
	
  
2. Spring 4.2注釈構成のサポートを開始
非常に簡単で、Controllerクラスまたはそのメソッドに@CrossOrigin注記を追加して、ドメイン間でサポートすることができます.例:
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
@RequestMapping("/User")
public class UserController {
}

ここでoriginsはCrossOriginのデフォルトパラメータ、すなわちドメイン間ソース、*は任意のソース、または他のドメイン名です.すなわち、以下の形式で行うことができる.
@CrossOrigin("http://test.com")
@CrossOrigin(origins="http://test.com",maxAge=3600)

この注記はメソッドに用いられ,書き方は同じであり,処理時にSpringMVCはクラス上のラベルとメソッド上のラベルをマージする.