Java spring 框架跨域问题处理
2016-07-15 18:10
555 查看
Spring 跨域问题处理办法
it 技术革新 真快。15年16年 上半年开始流行 前后端分离技术。前端发送 ajax 请求。后端同统一定义接口返回结构 前端有自己的服务器和架构。后端只需要提供相应的接口就行。由于前后端的 技术分离 不在同一个 域名下。就出出现跨域问题。针对此问题 可以参考 w3c的文档 和spring 官方文档.spring跨域问题只需要 注解一个bean 配置下就行。
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**/**").allowedOrigins("前端的ip+端口");
}
};
}
例如 本地前端端口 localhost:4000
registry.addMapping("/**/**").allowedOrigins("localhost:4000");
Spring-web-4.2.6RELEASE.jar 高版本 jar 包完美支持跨域
@Bean
public CorsFilter corsFilter(Environment env) {
final CorsConfiguration corsConfiguration = new CorsConfiguration();
// String origins="http://test.shenghua.com:8080,http://123.23.45.67:8080"//前端 地址
String origins=env.getProperty("allowed.origin");//配置文件里面读取配置
log.info("cor allow origin:{}", origins);
if (StringUtils.isNotEmpty(origins)) {
IterableUtils.forEach(Splitter.on(",").split(origins), new Closure<String>() {
@Override
public void execute(String input) {
corsConfiguration.addAllowedOrigin(input);
}
});
} else {
corsConfiguration.addAllowedOrigin("*");
}
corsConfiguration.addAllowedHeader("*"); // 2
corsConfiguration.addAllowedMethod("*");
corsConfiguration.addExposedHeader("Set-Cookie");
corsConfiguration.setMaxAge(Long.parseLong(Integer.MAX_VALUE));
corsConfiguration.setAllowCredentials(true);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfiguration); // 4
return new CorsFilter(source);
}
it 技术革新 真快。15年16年 上半年开始流行 前后端分离技术。前端发送 ajax 请求。后端同统一定义接口返回结构 前端有自己的服务器和架构。后端只需要提供相应的接口就行。由于前后端的 技术分离 不在同一个 域名下。就出出现跨域问题。针对此问题 可以参考 w3c的文档 和spring 官方文档.spring跨域问题只需要 注解一个bean 配置下就行。
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**/**").allowedOrigins("前端的ip+端口");
}
};
}
例如 本地前端端口 localhost:4000
registry.addMapping("/**/**").allowedOrigins("localhost:4000");
Spring-web-4.2.6RELEASE.jar 高版本 jar 包完美支持跨域
@Bean
public CorsFilter corsFilter(Environment env) {
final CorsConfiguration corsConfiguration = new CorsConfiguration();
// String origins="http://test.shenghua.com:8080,http://123.23.45.67:8080"//前端 地址
String origins=env.getProperty("allowed.origin");//配置文件里面读取配置
log.info("cor allow origin:{}", origins);
if (StringUtils.isNotEmpty(origins)) {
IterableUtils.forEach(Splitter.on(",").split(origins), new Closure<String>() {
@Override
public void execute(String input) {
corsConfiguration.addAllowedOrigin(input);
}
});
} else {
corsConfiguration.addAllowedOrigin("*");
}
corsConfiguration.addAllowedHeader("*"); // 2
corsConfiguration.addAllowedMethod("*");
corsConfiguration.addExposedHeader("Set-Cookie");
corsConfiguration.setMaxAge(Long.parseLong(Integer.MAX_VALUE));
corsConfiguration.setAllowCredentials(true);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfiguration); // 4
return new CorsFilter(source);
}
相关文章推荐
- 插件管理框架 for Delphi(一)
- 使用CSS框架布局的缺点和优点小结
- 一起动手编写Android图片加载框架
- 基于.NET平台常用的框架和开源程序整理
- 列举PHP的Yii 2框架的开发优势
- Windows窗体的.Net框架绘图技术实现方法
- 浅谈JavaScript 框架分类
- 轻量级javascript 框架Backbone使用指南
- javascript实现框架高度随内容改变的方法
- JS刷新框架外页面七种实现代码
- 超赞的动手创建JavaScript框架的详细教程
- 深入探讨前端框架react
- js验证框架实现代码分享
- jQuery的框架介绍
- 简单介绍不用库(框架)自己写ajax
- 利用ASP.NET MVC+EasyUI+SqlServer搭建企业开发框架
- asp.net4.0框架下验证机制失效的原因及处理办法
- 插件管理框架 for Delphi(二)
- 零基础学习AJAX之AJAX框架
- Ajax 框架学习笔记