Spring+CORSによるドメイン間問題の解決
3303 ワード
直接乾物:
1.spring 4.1および以前のバージョンではフィルタを使用して解決
まずpomでxml導入jarパッケージ
そしてweb.xmlでのフィルタの構成
非常に簡単で、Controllerクラスまたはそのメソッドに
ここでoriginsはCrossOriginのデフォルトパラメータ、すなわちドメイン間ソース、*は任意のソース、または他のドメイン名です.すなわち、以下の形式で行うことができる.
この注記はメソッドに用いられ,書き方は同じであり,処理時にSpringMVCはクラス上のラベルとメソッド上のラベルをマージする.
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はクラス上のラベルとメソッド上のラベルをマージする.