引言:大家好,我是热爱coding,崇尚开源,乐于分享的【皮卡丘的猫】
跨域问题大家在前后端分离开发的时候大多数都会遇到过,目前解决跨域的方式有三种,前端的jsonp(暂且不演示怎么解决,前端同学自行百度一下),另外就是springboot CorsFilter,和nginx的跨域配置。
话不多说,直接上代码。
第一种代码方式,采用springboot的CorsFilter,代码如下
@Configuration
public class CorsConfig {
public CorsConfig() {
}
@Bean
public CorsFilter corsFilter() {
// 1. 添加cors配置信息
CorsConfiguration config = new CorsConfiguration();
// 设置允许所有请求
config.addAllowedOrigin("*");
// 设置允许请求的方式
config.addAllowedMethod("*");
// 设置允许的header
config.addAllowedHeader("*");
// 设置是否发送cookie信息
config.setAllowCredentials(true);
// 2. 为url添加映射路径
UrlBasedCorsConfigurationSource corsSource = new UrlBasedCorsConfigurationSource();
corsSource.registerCorsConfiguration("/**", config);
// 3. 返回重新定义好的corsSource
return new CorsFilter(corsSource);
}
}
第二种:nginx 配置文件修改,添加相关跨域配置。代码如下:
server {
listen 89;
server_name localhost;
# 允许跨域请求的域,*代表所有
add_header 'Access-Control-Allow-Origin' *;
# 允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
# 允许请求的方法,比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
# 允许请求的header
add_header 'Access-Control-Allow-Headers' *;
location / {
root html;
index test.html;
}
}
至此,跨域问题就可以解决了,有问题的小伙伴们可以尝试一下吧。