spring boot跨域问题
程序员文章站
2024-02-05 11:44:22
...
解决 springboot 跨域问题的 三种方式(亲测可用)
方式一:直接写一个 配置类 其他 不变
@Configuration
public class OrginConfig {
/**
* 配置请求资源规则
*/
public CorsConfiguration buildCors() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
//设置所有请求路径允许
corsConfiguration.addAllowedOrigin("*");
//设置所有头文件允许
corsConfiguration.addAllowedHeader("*");
//设置所有请求带cookie
corsConfiguration.setAllowCredentials(true);
//设置所有请求方法允许
corsConfiguration.addAllowedMethod("*");
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildCors());
return new CorsFilter(source);
}
方式二 直接写一个 配置类
@Configuration
public class WebOriginConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
//重写父类提供的跨域请求处理的接口
public void addCorsMappings(CorsRegistry registry) {
//添加映射路径
registry.addMapping("/**")
//放行哪些原始域
.allowedOrigins("*")
//是否发送Cookie信息
.allowCredentials(true)
//放行哪些原始域(请求方式)
.allowedMethods("GET","POST", "PUT","DELETE")
//放行哪些原始域(头部信息)
.allowedHeaders("*")
//暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)
.exposedHeaders("Header1", "Header2");
}
};
}
}
方式三 局部跨域
//在需要跨域的 controller 上面 加注解 里面是写 上允许跨域访问的 路径
@CrossOrigin(value = "http://127.0.0.1:8020")
前端 这么 写
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
<script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
</head>
<body>
<div id="demo">
<button id="btn" @click="test">test vue Ajax</button>
<!-- <p>{{res}}</p> -->
</div>
</body>
</html>
<script>
new Vue({
el:"#demo",
methods:{
test(){
axios.post("http://127.0.0.1:8080/test")
.then(function(response){
if(response.data!=1){
alert("error")
}else{
alert("success")
}
})
}
},
})
</script>
完结
上一篇: easyui(二)