解决跨域问题的后端解决方案
理解跨域,我们首先应该理解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
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步