问题:
今天写项目的时候前端通过axios发生请求,可以正常发送,也可以正常获取数据。但是当我给前端axios带上cookie去请求的时候问题就来,说我跨域了。
后端偷懒直接通过@CrossOrigin注解来解决跨域问题的,在使用@CrossOrigin的时候没有传递任何的值,错就错在这。
解决:
可以基于偷懒只要给@CrossOrigin注解传递两个参数就好了分别是 origins 和 allowCredentials :
@CrossOrigin(origins="http://localhost:5173",allowCredentials="true")
这样就可以解决axios请求携带cookie时的跨域问题了
![](https://i-blog.csdnimg.cn/direct/8dc94a68700648a9991d04b905ef3af1.png)
原因:
当withCredentials
为true
时,后端必须满足以下条件才能成功处理请求:
-
CORS配置中的
Access-Control-Allow-Origin
必须为具体的域名:不能设置为通配符*
,必须明确指定允许的域名,例如http://localhost:5173
。 -
Access-Control-Allow-Credentials
必须设置为true
:后端需要明确告诉浏览器它允许携带凭据的请求。