Java バックエンド関数開発でクロスドメイン要求を処理するにはどうすればよいですか?
フロントエンドとバックエンドが分離されている開発モードでは、フロントエンドがバックエンド API インターフェイスにリクエストを送信し、JavaScript を通じてデータを取得するのが非常に一般的なシナリオです。ただし、ブラウザーの同一オリジン ポリシーにより、クロスドメイン リクエストには制限があります。クロスドメイン リクエストとは、フロントエンド ページが、AJAX などの方法を介して、異なるドメイン名、異なるポート、または異なるプロトコルを持つサーバーを要求することを意味します。この記事では、Java バックエンド関数の開発においてクロスドメイン リクエストを処理する一般的な方法をコード例とともに紹介します。
クロスドメインの問題を解決する一般的な方法は、バックエンドで対応する構成を作成することです。以下では、例として Spring Boot フレームワークを使用して、クロスドメイン リクエストを処理する方法を紹介します。
バックエンド コントローラー メソッドに CrossOrigin アノテーションを追加します。このアノテーションは、ドメイン名、リクエスト メソッド、およびクロスオリジンを許可するその他の関連パラメーターを構成するために使用されます。ドメイン。以下に例を示します。
@RestController @RequestMapping("/api") @CrossOrigin(origins = "http://frontend.com", methods = {RequestMethod.GET, RequestMethod.POST}) public class MyController { // Controller方法... }
上記のコードでは、@CrossOrigin アノテーションは、http://frontend.com のドメイン名が GET リクエストと POST リクエストを開始できることを指定しています。必要に応じてこれらのパラメータを変更できます。
構成ファイルを通じて、グローバル クロスドメイン要求処理を実現できます。 Spring Boot プロジェクト構成ファイル (application.properties など) に次の構成を追加します。
spring.webmvc.cors.allowed-origins=*
上記のコードは、すべてのドメイン名がクロスドメイン要求を開始できることを示しています。次のような特定のドメイン名を指定することもできます。
spring.webmvc.cors.allowed-origins=http://frontend1.com,http://frontend2.com
上記の 2 つの方法に加えて、次のこともできます。フィルターを使用してクロスドメイン要求を処理します。 Filter インターフェイスを実装するクラスを作成し、doFilter メソッドにクロスドメイン処理ロジックを追加します。以下に例を示します。
@Component public class CorsFilter implements Filter { @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With"); chain.doFilter(req, res); } }
上記のコードでは、クロスドメイン要求を許可する構成は、応答ヘッダーを設定することによって実装されています。
要約すると、Java バックエンド関数開発ではクロスドメイン リクエストを処理する方法がたくさんあります。実際のニーズに応じて適切な方法を選択してください。上記は、CrossOrigin アノテーションの使用、Spring Boot グローバル クロスドメイン構成の構成、および Filter を使用してクロスドメイン リクエストを処理するためのサンプル コードを示しています。開発中のクロスドメインの問題の解決に役立つことを願っています。
以上がJava バックエンド関数開発でクロスドメインリクエストを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。