记录一次Springboot解决跨域问题——都是泪啊!!!!!!

最近开发一个项目,采用SpringBoot + Dubbo(nacos和eureka版也可,我都试过了)和 Vue开发。因为是自己写,所以要自己解决跨域(以前都不关心的),踩了好多坑,记录下来。

首先跨域问题是怎么产生的呢?

要先把问题说明白,才能去着手解决问题。

跨域问题:跨域名访问所产生的问题。主要原因是浏览器的同源策略。文章里说的很详细,然后什么是不同源呢?主要看协议、地址、端口。比如说,协议不同http和https,域名不同,端口不同这两个比较明显。
这样浏览器会认为前后端不是同一个源,有安全隐患,所以就把ajax拦了下来。
那我这里先说一下解决的方案,我这边主要是靠后端去解决,因为比较方便。SpringBoot可以按照如下操作一番:
建一个conf文件夹,写配置类:

@Configuration
public class CrosConfig extends WebMvcConfigurationSupport {

    /**
     * 解决跨域问题
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowCredentials(true)
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .maxAge(3600)
                .allowedHeaders("*");
    }
    
}

然后其实就解决了。
如果我们想精确到方法的话,可以使用注解 @CrossOrigin

@CrossOrigin(allowCredentials = "true",origins = "http://localhost:8080")

当然前端要记得把http:// 加上千万别忘了!!!

你可能感兴趣的:(记录一次Springboot解决跨域问题——都是泪啊!!!!!!)