解决跨域问题的后端解决方案

理解跨域,我们首先应该理解web的同源策略。

什么是同源策略?

  • 它是浏览器的一个安全策略,就是限制当前源与其它源进行交互,这样就能阻隔恶意文档和减少可能被攻击的媒介。

何为同源?

  • 若有两个URL,只有协议(protocol)、域名(host)、端口号(port),三者相同时,才能被称之为同源。

何为跨域访问?

  • 当要在不同源之间进行数据交互时,这个过程跨域就可称之为跨域访问。

  • 那我的项目举个例子(前后端分离项目,开发环境,Vue运行http://localhost:8081,后端运行http://localhost:8080)


    前端登陆页面的表单数据通过Ajax提交给后端的/login接口进行处理,此时就是在跨域访问

后端解决跨域的一种方案

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 corsRegistry){
        corsRegistry.addMapping("/**")//允许跨域的访问路径
                    .allowedOrigins("http://localhost:8081")//允许跨域访问的源
                    .allowedMethods("POST","GET","PUT","OPTIONS","DELETE")//允许请求方法
                    .allowCredentials(true)//是否允许发送cookie
                    .maxAge(3600)//预检的间隔时间
                    .allowedHeaders("*");//允许跨域访问的header
    }
}
原文地址:https://www.cnblogs.com/masker99/p/14742661.html