一、什么是跨域

为保证浏览器的安全,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源,这称之为同源策略,如果一个请求地址里的协议、域名、端口号都相同,就属于同源。依据浏览器同源策略,非同源脚本不可操作其他源下的对象,想要操作其他源下的对象就需要跨域。

二、CORS

CORS是为解决浏览器跨域问题由W3C提出的跨源资源共享方案,CORS可以在不破坏即有规则的情况下,通过后端服务器实现CORS接口,从而实现跨域通信。

三、实现

  • config包下添加CORS配置类,实现WebMvcConfigurer 接口
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")	// 允许跨域访问的路径
        .allowedOrigins("*")	// 允许跨域访问的源
        .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")	// 允许请求方法
        .maxAge(168000)	// 预检间隔时间
        .allowedHeaders("*")  // 允许头部设置
        .allowCredentials(true);	// 是否发送cookie
    }
}

这样,每当客户端发送请求时,都会在头部附上跨域信息,就可以支持跨域访问了

以上为本篇文章的主要内容,希望大家多提意见,如果喜欢记得点个推荐哦
作者:Maggieq8324
本文版权归作者,欢迎转载,转载时保留原作者和文章地址即可。