美文网首页
跨域问题

跨域问题

作者: 小名源治 | 来源:发表于2022-08-13 10:30 被阅读0次

1.问题描述

当我们访问后端接口的时候出现no-referrer-when-downgrade,那么就说明我们遇到了跨域问题。


image.png

2.问题原因

我们前端的端口是8080,后端的端口是8888。
8080访问8888就会认为是访问了另外一个域名(IP地址)(访问一个资源必须是IP地址+端口),浏览器就会认为这是一个不安全的访问。

3.解决办法

在SpringBoot项目中添加配置,统一让8080端口能够访问8888;
添加一个自定义配置类,该类实现WebMvcConfigurer接口,然后重写他的addCorsMappings方法。将前端访问的路径添加进去。

//处理跨域问题的类
@Configuration
public class WebConfig  implements WebMvcConfigurer {
    /**
     * 处理跨域问题
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        //跨域配置,不可设置为*,不安全, 前后端分离项目,可能域名不一致
        //本地测试 端口不一致 也算跨域
        registry.addMapping("/**")
                //配置访问的地址,*代表所有的都可以访问
                .allowedOrigins("http://localhost:8080")
                //.allowedOriginPatterns("*")    所有地址都可以访问
                //允许的请求方式
                .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
                //是否支持跨域Cookie
                .allowCredentials(true)
                // 跨域允许时间
                .maxAge(3600);
    }
}

4.遇到的问题

配置所有路径都可以访问的时候:刚开始用的是allowedOrigins(""),发现并没有用,通过大量查阅资料才发现,这是我springboot版本的问题,版本说明
用”
“号必须用allowedOriginPatterns("*")才能支持所有路径访问。

相关文章

网友评论

      本文标题:跨域问题

      本文链接:https://www.haomeiwen.com/subject/lwncgrtx.html