跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制
同源策略:指的是:当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
解决
SpringBoot通过CORS实现跨域
使用注解实现跨域
@CrossOrigin(origins = "*")
@Slf4j
@RestController
public class EmployeeController {
}
通过全局配置解决跨域请求
//web相关配置
@Configuration
public class ReggieWebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*") //允许跨域的域名,可以用*表示允许任何域名使用
.allowedMethods("*") //允许任何方法(post、get等)
.allowedHeaders("*") //允许任何请求头
.allowCredentials(true) //带上cookie信息
.maxAge(3600); //maxAge(3600)表明在3600秒内,不需要再发送预检验请求,可以缓存该结果
}
}
默认情况下:cookie是不支持跨域的,而我们使用了session存储用户信息;我们登陆成功后又被拦截。。。
前后端项目方案:JWT(token)–令牌机制代替session