首页 > 其他分享 >使用CORS解决跨域问题

使用CORS解决跨域问题

时间:2024-10-16 15:21:41浏览次数:17  
标签:请求 source CORS 解决 new config 跨域

如果发起请求所在主机(也称为域)和处理请求所在主机的协议、域名和端口号这三者中有任何一项不同,那么发出的请求就叫跨域请求。
出于网络安全性方面的考虑,跨域请求会被限制,Spring Boot后端不能直接处理跨域请求,为了解决这一问题,可以在后端项目中引入CORS解决方案。
CORS(Cross Origin Resource Sharing,跨域资源共享)解决方案中,前端在发送请求前,需要预先用OPTIONS的方式发送一个询问请求,通过该请求得知,在后端支持跨域请求的前提下再发送真正的请求。
具体来说,在后端Spring Boot项目中,添加一个名为ResourcesConfig的配置类,在其中添加一个基于CORS的拦截器,这样前端发来的基于OPTIONS的询问请求会被该拦截器处理,一律返回“可接受跨域请求”,相关代码如下:

@Configuration
public class ResourcesConfig implements WebMvcConfigurer {
    /**
     * 跨域配置
     */
    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true);
        // 设置访问源地址
        config.addAllowedOriginPattern("*");
        // 设置访问源请求头
        config.addAllowedHeader("*");
        // 设置访问源请求方法
        config.addAllowedMethod("*");
        // 有效期 1800秒
        config.setMaxAge(1800L);
        // 添加映射路径,拦截一切请求
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);
        // 返回新的CorsFilter
        return new CorsFilter(source);
    }
}

在该类中,通过第7行Configuration注解说明本类将起到配置类的作用。该类实现了WebMvcConfigurer接口,并在第8行中通过编写corsFilter方法设置了本项目支持跨域请求。具体来说,在该方法的第24行代码中,设置了本后端项目的所有接口方法,都支持跨域请求。

标签:请求,source,CORS,解决,new,config,跨域
From: https://blog.csdn.net/2301_80197997/article/details/142981796

相关文章

  • 《纪元1800》遭遇dll丢失问题无法启动:msvcr71.dll丢失详解与定制化解决方案
    《纪元1800》是一款非常受欢迎的城市建设和经济策略游戏,但有时玩家可能会遇到msvcr71.dll丢失的问题,导致游戏无法启动。msvcr71.dll是MicrosoftVisualC++运行库的一部分,负责支持许多应用程序的运行。以下是对msvcr71.dll丢失问题的详细解释及定制化解决方案。问题原......
  • QT打包exe(含错误解决方法)
    打包工具windeployqt.exe运行报错QT5core库链接有问题把打包工具路径下的libstdc++-6.dll文件粘贴到目标路径下(可以看到两个文件的大小是有差别的,具体原因未知)参考https://blog.csdn.net/hanhui22/article/details/109595193......
  • 64页精品PPT | 汽车经销商数据应用解决方案
    汽车经销商正面临前所未有的盈利能力挑战。从18年起,传统燃油车汽车行业开始步入低速增长阶段,卖车已经挣不到钱,利润往往来自任务完成的厂家返利;新兴的直营模式的出现,冲击了传统授权经销的方式,疫情让这种情况“雪上加霜”。该资料共64页可编辑PPT格式,本文重点展现PPT整体......