CROS跨域配置异常

简介: 这是一个CORS跨域问题案例,前端(localhost:8080)尝试访问后端(localhost:9999)被阻止。后端已配置CORS过滤器,但`addAllowedOrigin`错误地设为`http://localhost:9999`。正确配置应为`http://localhost:8080`以允许前端请求。
Access to XMLHttpRequest at 'http://127.0.0.1:9999/login?username=1634856201@qq.com&password=wcl123456' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Login_Form.vue:97 
POST http://127.0.0.1:9999/login?username=1634856201@qq.com&password=wcl123456 net::ERR_FAILED 403 (Forbidden)

这是一个典型的CORS(跨源资源共享)问题,也就是说浏览器阻止了从 http://localhost:8080 发起到 http://127.0.0.1:9999/login 的请求。

首先我的后端部署IP端口为:localhost:9999

            前端部署IP端口为:localhost:8080

并且我在后端是有对跨域进行配置的:

/**
     * 创建并配置CORS过滤器,以允许来自指定来源的跨域请求。
     * 这个方法设置了过滤器的配置,包括允许的来源、请求头、请求方法和凭证。
     *
     * @return CorsFilter 返回配置好的CORS过滤器实例。
     */
    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();

        // 设置允许的来源为http://localhost:9999
        config.addAllowedOrigin("http://localhost:9999");

        // 设置允许所有的请求头
        config.addAllowedHeader("*");
        // 设置允许所有的请求方法
        config.addAllowedMethod("*");
        // 允许请求携带凭证(如cookies)
        config.setAllowCredentials(true);
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        // 将CORS配置应用到所有路径
        source.registerCorsConfiguration("/**", config);
        return new CorsFilter(source);
    }

最后发现我的问题是出现在该行代码如下:

// 设置允许的来源为http://localhost:9999
config.addAllowedOrigin("http://localhost:9999");

这行代码的真实意思是配置允许接收处理哪一个IP端口发送过来的请求,而我的前端部署IP端口为localhost:8080,所以正确的配置应该是:

// 设置允许的来源为http://localhost:8080
config.addAllowedOrigin("http://localhost:8080");

这样的话就可以解决前端在localhost:8080端口发送请求给后端,后端在localhost:9999端口接收该跨域请求了。

相关文章
|
应用服务中间件 Nacos nginx
跨域配置
跨域配置
472 0
跨域配置
|
9天前
|
安全 前端开发 JavaScript
什么是跨域?为什么会产生跨域?怎么解决跨域?
什么是跨域?为什么会产生跨域?怎么解决跨域?
88 0
|
11月前
|
移动开发 JSON 数据格式
解决跨域的方法
解决跨域的方法
62 0
|
JavaScript 前端开发 中间件
解决跨域的九种方法
跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。
534 0
解决跨域的九种方法
|
JSON 缓存 安全
跨域时怎么处理 cookie?
跨域时怎么处理 cookie?
|
存储 前端开发 JavaScript
什么是跨域?如何解决跨域问题?
什么是跨域?如何解决跨域问题?
774 0
什么是跨域?如何解决跨域问题?
|
安全 JavaScript 前端开发
什么是跨域,如何解决跨域?
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群
什么是跨域,如何解决跨域?
|
存储 前端开发 安全
前端401错误 & 解决方法:响应拦截器
前端401错误 & 解决方法:响应拦截器
前端401错误 & 解决方法:响应拦截器
跨域配置类
跨域配置类
97 0
|
安全 JavaScript 前端开发
什么是跨域?如何解决跨域?
解决好跨域,让我们愉快的开发吧
511 4
什么是跨域?如何解决跨域?