SpringBoot设置允许跨域请求的方法

Java
404
0
0
2022-04-04
标签   SpringBoot

跨域请求

何谓跨域请求?简单来说,是浏览器的一种自我保护机制。Web请求连接中,有三大要素:地址ip、端口port、协议http/https,只要其中有一个不一致,浏览器将视其为跨域请求。

SpringBoot设置允许跨域请求的方法跨域请求

跨域请求不是一个新鲜的概念,或者说是一个落后的概念,网络安全的维护,已经不再是简单地进行跨域请求的限制,作为互联网研发的一员,我们时常觉得浏览器应该废弃跨区请求的限制。如何解除跨域请求的限制呢?


允许跨域配置

Java是目前后端最热门的开发语言,而SpringBoot作为后端接口开发目前最热门的框架,跨域运行的设置,十分简单。

SpringBoot设置允许跨域请求的方法SpringBoot代码编写

方案一

重新配置 CorsFilter

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
* 实现基本的跨域请求
* @author IT小村
*
*/
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // 允许任何域名使用
corsConfiguration.addAllowedHeader("*"); // 允许任何头
corsConfiguration.addAllowedMethod("*"); // 允许任何方法(post、get等)return corsConfiguration;
}
@Beanpublic CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); // 对接口配置跨域设置return new CorsFilter(source);
}
}

方案二

实现 WebMvcConfigurer 接口,重写 addCorsMappings 方法。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 实现基本的跨域请求
* @author IT小村
*
*/
@Configuration
public class WebAppConfigurer implements WebMvcConfigurer {
@Overridepublic void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowCredentials(true)
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE","OPTIONS")
.maxAge(3600);
}
}


其他

开发中跨域问题的频繁出现,主要原因在于互联网的高速发展,互联网产品更新迭代频繁,研发们不得推出高内聚低耦合的前后端分离开发模式,以便更加灵活地应对众多的技改需求。