Restfulインターフェイスを介して外界にサービスを提供する必要がある場合、この時点でアーキテクチャがフロントエンドとバックエンドから分離されている場合、クロスドメインの問題が含まれます。クロスドメインの問題を解決する方法は?以下でこの問題について説明しましょう。
ソリューション1:コントローラーに@crossoriginアノテーションを追加します
それを使用する方法は次のとおりです。
@crossorigin // annotation Method @restController public class handlerscancontroller { @crossorigin(approscredentials = "true"、adoverheaders = "*"、method = {requestmethod.post、requestmethod.delete、requestmethod.options、requestmeth.head.head. Origins = "*")@postmapping( "/consien")public Response Handler(@requestbody request json){return null; }}ソリューション2:グローバル構成
コードは次のとおりです。
@configuration public class myConfiguration {@bean public webmvcconfigurer corsconfigurer(){return new webmvcconfigureradapter(){@override public void addcorsmappings(corsregistry registry){registry.addmapping( "/**")。 }}; }}ソリューション3:フィルターと組み合わせて使用します
スプリングブーツのメインクラスで、corsfilterを追加します
/** * *注意:単純なクロスドメインはGET、HEADおよびPOSTリクエストですが、POSTリクエストの「コンテンツタイプ」は、アプリケーション/X-WWW-Form-Urlencoded、MultiPart/Form-DataまたはText/Plain *のみであることができます。そうでなければ、単純なクロスドメインではありません。このクロスドメインには、飛行前のメカニズムがあります。率直に言うと、2つのリクエスト、1つのオプションリクエスト、1つの実際のリクエスト*/ @bean publicFilter corsfilter(){final urlbasedcorsconfigurationsource = new urlbasedcorsconfigurationsource();最終的なcorsconfiguration config = new corsconfiguration(); config.setallowcredentials(true); //クッキーがクロスドメインconfig.addallowedorigin( "*"); //#このサーバーへのリクエストのURIを発表しました。 *はすべて許可されていることを意味します。 springmvcでは、 *に設定されている場合、自動的にOrigin config.addallowedheader( " *")に変換されます。 // #ADDヘッダーにアクセスするには、 *すべてのconfig.setMaxage(18000L)を意味します。 //プリフライトリクエストのキャッシュ時間(秒)、つまり、この期間中、config.addallowedMethod( "options"); //リクエストの送信を許可するメソッド *は、すべてがconfig.addallowedMethod( "head")を許可することを意味します。 config.addallowedMethod( "get"); // getのリクエストメソッドconfig.addallowedmethod( "put");を許可します。 config.addallowedMethod( "post"); config.addallowedMethod( "delete"); config.addallowedMethod( "patch"); source.registerCorsConfiguration( "/**"、config);新しいcorsfilter(source)を返します。 }もちろん、多くのマイクロサービスがある場合は、各サービスのメインクラスにこのようなコードを追加する必要があります。これは、乾燥した原則に違反しています。より良いアプローチは、ズールのゲートウェイ層でドメインクロスの問題を解決することです。
フロントエンドクロスドメインの詳細については、http://www.vevb.com/article/83093.htmを参照してください。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。