いわゆるクロスドメインリクエストとは、リクエストが現在開始されているドメインが、リクエストが指すリソースが配置されているドメインとは異なることを意味します。ここでのドメインとは、プロトコル、ドメイン名、ポート番号がすべて同じであれば、それらは同じドメインにあると考えられるという概念を指します。
バックエンドは、主に cors の助けを借りてクロスドメインを解決します
次のことができます。アノテーションを使用します: @CrossOrigin
このアノテーションをオンにすると、クロスドメインの問題を解決できます。コントローラーに追加できます。表面的には、コントローラー内のすべてのメソッドがクロスドメイン処理を受けています。メソッドに単独で追加して、これしか存在しないことを示すこともできます。メソッドはドメイン間で処理されています
#ただし、デフォルト値は * です。これは、デフォルトですべてが許可されていることを意味しますが、理論的にはあまり安全ではありません
プロジェクト内に複数のコントローラーまたはメソッドがある場合、アノテーションを使用することは非常に役に立ちません。それらを 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 がグローバルおよびローカルのクロスドメインを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。