为什么会出现跨域问题?主要是出于浏览器的同源策略限制
所谓同源(即指在同一个域)就是两个地址具有相同的协议(protocol),主机(host)和端口号(port)
同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。
同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能。
解决方法
第一种(推荐)
在controller层(即api提供处),类上添加一个注解
@CrossOrigin
第二种:
写个配置类即可解决。
代码语言:javascript复制@Configuration
public class CrosConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*") //允许任何方法(post、get)等
.allowCredentials(true)
.maxAge(3600)
.allowedHeaders("*"); //允许跨域的域名,用*表示允许任何域名使用
}
}