浏览器拥有最基本的安全机制,同源策略。
违背同源策略的交互,会被浏览器认为是不安全的交互,所以不解析。
什么是域?(源)
协议,域名,端口。
什么是跨域?
访问不同的域。
即便协议,域名相同,端口号不一样也会违背同源策略。
前后端分离后,前端服务器负责视图,后端服务器负责数据。
不同的服务器,其域必定不同。
假设前端服务器为localhost:5173
假设后端服务器为localhost:8080
所以,前端请求后端,后端响应的数据浏览器不会解析。
一图了解跨域
跨域的解决办法
常见的两种解决办法
前端代理请求
此解决办法简单有效,但会加大前端服务器压力。
后端跨域过滤器
最常见的跨域处理方式,服务器会在接收到预检请求后,响应一堆跨域响应头。
预检请求通常是OPTIONS的请求方式
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT,OPTIONS, DELETE, HEAD");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With");
标签:Control,Java,跨域,Access,服务器,第四十二,response,setHeader
From: https://www.cnblogs.com/rowbed/p/18134191