跨域
浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口和协议,只要有一个不同就是跨域 。如跨域时报错如下图
方式一 使用@CrossOrigin注解
该注解可以使用在Controller类上,或者方法上。
@CrossOrigin(origins = "http://localhost:3601") 表示允许的域,*表示 所有域
方式二 重写WebMvcConfigurer的addCorsMappings方法
增加配置类(类使用@Configuration注解),进行全局配置。
新增一个类,使用@Configuration注解,代码如下
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfiguration implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry corsRegistry) {
// 允许跨域访问资源定义: /api/ 所有资源
corsRegistry.addMapping("/**")
// 只允许本地的9000端口访问
.allowedOrigins("*")
// 允许发送Cookie
.allowCredentials(true)
.allowedHeaders("*")
// 允许所有方法
.allowedMethods("*")
.maxAge(3600);
}
}