Aufgrund der Same-Origin-Richtlinienbeschränkungen des Browsers. Same-Origin-Richtlinie (Same-Origin-Policy) ist eine Konvention. Sie ist die wichtigste und grundlegendste Sicherheitsfunktion des Browsers. Wenn die Same-Origin-Richtlinie fehlt, können die normalen Funktionen des Browsers beeinträchtigt sein. Das Web basiert auf der Same-Origin-Richtlinie, und der Browser ist lediglich eine Möglichkeit, die Same-Origin-Richtlinie zu implementieren.
In JavaScript begrenzt die Same-Origin-Richtlinie die Interaktionen zwischen verschiedenen Domänen und verhindert domänenübergreifende Angriffe. Der sogenannte gleiche Ursprung (d. h. in derselben Domäne) bedeutet, dass die beiden Seiten dasselbe Protokoll, denselben Host und dieselbe Portnummer haben. Was ist ein domänenübergreifendes Protokoll, wenn eine der Domänen vorliegt? Name und Port unterscheiden sich von der aktuellen Seiten-URL, es handelt sich um eine domänenübergreifende
3. Nicht ursprüngliche EinschränkungEs kann keine Verbindung zum DOM von nicht ursprünglichen Webseiten hergestellt werden. Die wichtigsten sind wie folgt. Es stehen drei Möglichkeiten zur Auswahl:
Einen neuen CorsFilter zurückgeben
WebMvcConfigurer umschreiben
Geben Sie in jeder Konfigurationsklasse ein neues CorsFIlter-Bean zurück und fügen Sie den Zuordnungspfad und den spezifischen CORS-Konfigurationspfad hinzu.
@Configuration public class GlobalCorsConfig { @Bean public CorsFilter corsFilter() { //1. 添加 CORS配置信息 CorsConfiguration config = new CorsConfiguration(); //放行哪些原始域 config.addAllowedOrigin("*"); //是否发送 Cookie config.setAllowCredentials(true); //放行哪些请求方式 config.addAllowedMethod("*"); //放行哪些原始请求头部信息 config.addAllowedHeader("*"); //暴露哪些头部信息 config.addExposedHeader("*"); //2. 添加映射路径 UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource(); corsConfigurationSource.registerCorsConfiguration("/**",config); //3. 返回新的CorsFilter return new CorsFilter(corsConfigurationSource); } }
@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") //是否发送Cookie .allowCredentials(true) //放行哪些原始域 .allowedOrigins("*") .allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"}) .allowedHeaders("*") .exposedHeaders("*"); } }
3. Annotationen verwenden (lokal domänenübergreifend)
@RestController @CrossOrigin(origins = "*") public class HelloController { @RequestMapping("/hello") public String hello() { return "hello world"; } }
Verwenden Sie die Annotation @CrossOrigin für die Methode:
@RequestMapping("/hello") @CrossOrigin(origins = "*") //@CrossOrigin(value = "http://localhost:8081") //指定具体ip允许跨域 public String hello() { return "hello world"; }
@RequestMapping("/index") public String index(HttpServletResponse response) { response.addHeader("Access-Allow-Control-Origin","*"); return "index"; }
5. Verwenden Sie einen benutzerdefinierten Filter, um domänenübergreifend zu erreichen. Schreiben Sie zunächst einen Filter, der MyCorsFilter.java genannt werden kann
Das obige ist der detaillierte Inhalt vonAuf welche Weise implementiert Spring Boot die domänenübergreifende Implementierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!