在学习web开发的时候经常会碰到 跨域的问题 ,首先要了解什么是跨域问题???
出于浏览器的同源策略限制,同源策略是一种约定,它是浏览器最核心也就是最基本的安全功能,如果缺少了同源策略,浏览器的正常功能会受到影响,可以说WEB是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的js脚本和另外一个域的内容进行交互,所谓同源(即在同一个域)就是两个页面具有相同的协议(protocol)、主机(host)和接口号(port)
问题: 也就是说 浏览器和服务器端的地址不一致导致
下面提供全局配置解决跨域处理
思路:实现 WebMvcConfigurer接口 重写方法 addCorsMapping
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 全局跨域配置
*
* @author jun
*/
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
// 覆盖所有请求
registry.addMapping("/**")
// 允许发送 Cookie
.allowCredentials(true)
// 放行哪些域名(必须用 patterns,否则 * 会和 allowCredentials 冲突)
.allowedOriginPatterns("*")
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("*")
.exposedHeaders("*");
}
}