ホームページ  >  記事  >  Java  >  SpringBoot がグローバルおよびローカルのクロスドメインを実装する方法

SpringBoot がグローバルおよびローカルのクロスドメインを実装する方法

王林
王林転載
2023-05-14 23:16:14907ブラウズ

クロスドメインとは

いわゆるクロスドメインリクエストとは、リクエストが現在開始されているドメインが、リクエストが指すリソースが配置されているドメインとは異なることを意味します。ここでのドメインとは、プロトコル、ドメイン名、ポート番号がすべて同じであれば、それらは同じドメインにあると考えられるという概念を指します。

クロスドメインの解決策

バックエンドは、主に cors の助けを借りてクロスドメインを解決します

部分的な解決策 (アノテーションを使用)

次のことができます。アノテーションを使用します: @CrossOrigin

このアノテーションをオンにすると、クロスドメインの問題を解決できます。コントローラーに追加できます。表面的には、コントローラー内のすべてのメソッドがクロスドメイン処理を受けています。メソッドに単独で追加して、これしか存在しないことを示すこともできます。メソッドはドメイン間で処理されています

SpringBoot がグローバルおよびローカルのクロスドメインを実装する方法

#ただし、デフォルト値は * です。これは、デフォルトですべてが許可されていることを意味しますが、理論的にはあまり安全ではありません

SpringBoot がグローバルおよびローカルのクロスドメインを実装する方法

プロジェクト内に複数のコントローラーまたはメソッドがある場合、アノテーションを使用することは非常に役に立ちません。それらを 1 つずつ行うのは面倒なので、グローバル アノテーションを使用できます。

グローバル ソリューション

原則: 構成クラスを作成し、クロスドメイン登録を有効にし、@Configuration アノテーションを使用します。このクラスを構成としてプロジェクトに挿入します。

リクエスト メソッド、ドメイン名のアクセス許可、リクエスト時間、およびクロスドメイン スコープのより詳細な制御を自由に設定できます

package com.wyh.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Description: 解决全局跨域
 * @Author: 魏一鹤
 * @Date: 2022-11-30 22:44
 **/

@Configuration
public class CorsMapping implements WebMvcConfigurer {

    @Override
    /**
     * 重新跨域支持方法
     * CorsRegistry  开启跨域注册
     */
    public void addCorsMappings(CorsRegistry registry) {
        //addMapping 添加可跨域的请求地址
        registry.addMapping("/**")
                //设置跨域 域名权限 规定由某一个指定的域名+端口能访问跨域项目
                .allowedOrigins("*")
                //是否开启cookie跨域
                .allowCredentials(false)
                //规定能够跨域访问的方法类型
                .allowedMethods("GET","POST","DELETE","PUT","OPTIONS")
                //添加验证头信息  token
                //.allowedHeaders()
                //预检请求存活时间 在此期间不再次发送预检请求
                .maxAge(3600);
    }
}

注: @Configuration アノテーションを忘れないでください。そうしないと、設定が無効になります。 ! !

SpringBoot がグローバルおよびローカルのクロスドメインを実装する方法

以上がSpringBoot がグローバルおよびローカルのクロスドメインを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。