记录一次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:// 加上千万别忘了!!!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容