近期SpringBoot项目部署遇到跨域问题,记录一下解决历程。

  1. 要严格限制,允许哪些域名访问,在application.properties文件里添加配置,配置名可以自己起:

    cors.allowed.origin=http://10.xx.253.xx:8081,http://localhost:4200

    做前后端分离的时候,这里允许的域名/IP一般都是前端项目所部署的机器。

  2. 添加一个配置类。@Configuration和@Bean注解一定要加上的。这样SpringBoot在启动的时候才会扫描到你这个类。这里的@Value("${cors.allowed.origin}")引用的就是在application.properties配置的跨域白名单。

@Configuration
public class CorsConfig { @Value("${cors.allowed.origin}")
private String allowedOrigin; private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowCredentials(true);
corsConfiguration.setMaxAge(24 * 3600L);
if (null != allowedOrigin) {
String[] origins = allowedOrigin.split(",");
for (String origin : origins) {
// 设置访问源地址
corsConfiguration.addAllowedOrigin(origin);
}
}
// 设置访问源请求头
corsConfiguration.addAllowedHeader("*");
// 设置访问源请求方法
corsConfiguration.addAllowedMethod("*");
return corsConfiguration;
} /**
* Cors过滤器.
*/
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
// 对接口配置跨域设置
source.registerCorsConfiguration("/**", buildConfig());
return new CorsFilter(source);
}
}
  1. 正常情况下,启动项目就可以了。但是在实际中,我在CorsConfig类中打断点,发现并没有去加载这个配置类。于是在Application入口添加了下面的注解@ComponentScan(basePackages = {"com.xxx.xxx.xxx.web.config"})这里参数是CorsConfig所在的包名。这时候启动,在CorsConfig里面打断点就可以进来了。

2019-03-26 SpringBoot项目部署遇到跨域问题,记录一下解决历程的更多相关文章

  1. SpringBoot项目 设置全局跨域

    package com.nf147.policy_project; import org.springframework.stereotype.Component; import javax.serv ...

  2. SpringBoot添加支持CORS跨域访问

    原文:https://www.jianshu.com/p/c6ea21b64f6e CORS(Cross-Origin Resource Sharing)"跨域资源共享",是一个W ...

  3. springboot项目部署云服务器

    Springboot项目部署云服务器 springboot项目部署云服务器还是挺简单的 首先你要有java运行环境,就是jdk的安装,如果还没有装没有参考安装:阿里云ECS建网站(建站)超详细全套完整 ...

  4. 多个springboot项目部署在同一tomcat上,出现jmx错误

    多个springboot项目部署在同一tomcat上,出现jmx错误 原因:因为jmx某些东西重复,禁用jmx就可以了 endpoints.jmx.unique-names=true

  5. React+SpringBoot项目部署

    静态资源访问配置 https://www.jianshu.com/p/b6e0a0df32ec https://segmentfault.com/q/1010000012240531/a-102000 ...

  6. springboot项目部署(war包)

    将springboot项目打包成war,并且部署到tomcat.比较麻烦,自己踩的坑也比较多.算了一下,找bug的时间,有两天熬到凌晨2点. 修改pom.xml使得打包成war <groupId ...

  7. Springboot vue.js html 跨域 前后分离 Activiti6 工作流 集成代码生成器 shiro 权限

    官网:www.fhadmin.org 特别注意: Springboot 工作流  前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0 ...

  8. Springboot vue 前后分离 跨域 Activiti6 工作流 集成代码生成器 shiro权限

    官网:www.fhadmin.org 特别注意: Springboot 工作流  前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0 ...

  9. Springboot vue.js html 跨域 前后分离 Activiti6 shiro 权限

    官网:www.fhadmin.org 特别注意: Springboot 工作流  前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0 ...

随机推荐

  1. 【poj3718】 Facer's Chocolate Dream

    http://poj.org/problem?id=3718 (题目链接) 题意 给出${2}$个长度为${n}$的${01}$串,问是否存在${m}$个长度为${n}$的有三个位置为${1}$的$0 ...

  2. python 用Threading创建多线程

    #-*-coding:utf-8-*- '''python标准库提供了两个多线程模块,分别为thread和threading, 其中thread模块是低级模块,threading是高级模块,对thre ...

  3. java同步代码(synchronized)中使用BlockingQueue

    说起BlockingQueue,大家最熟悉的就是生产者-消费者模式下的应用.但是如果在调用queue的上层代码加了同步块就会导致线程死锁. 例如: static BlockingQueue<St ...

  4. HDU 6170 dp

    Two strings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  5. solr与mysql数据同步的方案

    1.使用activeMQ http://blog.csdn.net/zhou2s_101216/article/details/77855413 2.通过配置实现定时同步 http://blog.cs ...

  6. GUI起头

    package com.lovo.frame; import java.awt.Color;import java.awt.Container;import java.awt.Font;import ...

  7. Oracle之xml的增删改查操作

    工作之余,总结一下xml操作的一些方法和心得! tip: xmltype函数是将clob字段转成xmltype类型的函数,若字段本身为xmltype类型则不需要引用xmltype()函数 同名标签用数 ...

  8. python---redis管道(事务)和发布订阅

    管道:将数据操作放在内存中,只有成功后,才会一次性全部放入redis #管道(事务),要是都成功则成功,失败一个全部失败 #原理:将数据操作放在内存中,只有成功后,才会一次性全部放入redis pip ...

  9. bzoj千题计划270:bzoj4559: [JLoi2016]成绩比较(拉格朗日插值)

    http://www.lydsy.com/JudgeOnline/problem.php?id=4559 f[i][j] 表示前i门课,有j个人没有被碾压的方案数 g[i] 表示第i门课,满足B神排名 ...

  10. hdu 5956 The Elder

    http://acm.hdu.edu.cn/showproblem.php?pid=5956 转移方程:dp[i]=(dis[i]-dis[j])*(dis[i]-dis[j])+P+dp[j] 斜率 ...