前后端分离项目中接口请求后端数据时出现cors错误,错误原因是跨域请求失败。
一、我们首先先来了解什么是跨域?
跨域,指的是跨域名访问,跨域的问题是浏览器对于Ajax请求的一种安全限制,能有效的阻止跨站攻击【由于浏览器的同源策略(同源策略,同协议,同域名,同端口),即属于不同域的页面之间不能相互访问各自的页面内容】。
注:域名和端口号相同,但请求路径不同,不属于跨域。
(例子,www.csdn.com:8554/login 和 www.csdn.com:8554/user)
二、解决跨域问题
- Jsop,最早的解决方案,利用script标签src属性来实现跨域,但是只能发起get请求;
- CORS,跨域资源共享,规范化的跨域请求解决方法,可以自定义规则,支持各种请求方式;
- Nginx,反向代理,利用nginx的特性,把跨域变为不跨域,支持各种请求;
三、用CORS解决跨域问题
在后端添加配置类,继承WebMvcConfigurer,并重写addCorsMappings方法
之后重启项目就可以正常运行了