@Configuration
public class UserConfig extends WebMvcConfigurationSupport {
/**
* 跨域处理
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") //表示所有的请求路径都经过跨域处理
.allowedOrigins("*")
/*.allowedMethods("*")
.allowedHeaders("*")*/
.allowedMethods("POST", "GET", "DELETE", "OPTIONS", "PUT")
.allowedHeaders("Content-Type", "Content-Length", "Accept", "X-Requested-With", "remember-me",
"auth", "Cookie", "Authorization", "AppId")
//允许在请求头里存放信息,后端通过请求头来获取前端传来的信息
.exposedHeaders("Authorization", "AppId")
//设置是否允许跨域传cookie
.allowCredentials(true)
.maxAge(3600);
super.addCorsMappings(registry);
}
/**
* 对静态资源的配置
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/*")
.addResourceLocations("classpath:/static/");
registry.addResourceHandler("doc.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
/**
* json返回中文乱码处理
* @param converters
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
//定义一个convert转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//添加fastjson的配置信息,比如:是否要格式化返回的json数据
FastJsonConfig fastJsonConfig = new FastJsonConfig();
//将为null的字段值显示为""
//DisableCircularReferenceDetect:消除循环引用
fastJsonConfig.setSerializerFeatures(SerializerFeature.DisableCircularReferenceDetect,
SerializerFeature.PrettyFormat,
//SerializerFeature.WriteNullListAsEmpty, //当集合为空的时候也返回空值
SerializerFeature.WriteNullStringAsEmpty,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteNullBooleanAsFalse,
SerializerFeature.WriteEnumUsingToString,
SerializerFeature.WriteNonStringKeyAsString);
fastConverter.setFastJsonConfig(fastJsonConfig);
//解决Long转json精度丢失的问题
SerializeConfig serializeConfig = SerializeConfig.globalInstance;
serializeConfig.put(BigInteger.class, ToStringSerializer.instance);
serializeConfig.put(Long.class, ToStringSerializer.instance);
serializeConfig.put(Long.TYPE, ToStringSerializer.instance);
fastJsonConfig.setSerializeConfig(serializeConfig);
//处理中文乱码问题(不然出现中文乱码)
List<MediaType> fastMediaTypes = new ArrayList<MediaType>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastConverter.setSupportedMediaTypes(fastMediaTypes);
//将convert添加到converters当中
converters.add(fastConverter);
}
Springboot内部跨域配置
原创
©著作权归作者所有:来自51CTO博客作者码海兴辰的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
SpringBoot: 全局跨域配置
一、可以在配置类中通过配置一个@Bean,直接实现全局的跨域,不需要在每个controller上加@CrossOrigin注解了。package cn.edu.tju.config;im
spring boot java spring mvc 跨域 -
SpringBoot实现配置跨域请求
一、什么是跨域请求? 跨域请求,就是说浏览器在执行脚本文件的ajax请求时,脚本文件所在的服务地址和请求的服
SpringBoot 跨域 spring 跨域请求 -
springboot配置全局跨域 springboot开启跨域
前言CORS(Cross-Origin Resource Sharing)"跨域资源共享",是一个W3C标准,它允许浏览器向跨域服务器发送Ajax请求,打破了Ajax只能访问本站内的资源限制,CORS在很多地方都有被使用,开放Ajax访问可被跨域访问的服务器大大减少了后台开发的工作,前后台工作也可以得到很好的明确以及分工,下面我们就看讲一下如何让你的SpringBoot项目支持CORS跨域。注意:
springboot配置全局跨域 CORS跨域解决 ajax跨域问题 springboot跨域配置 springMVC跨域配置