1、问题复现:
项目中后端使用Springboot搭建,使用Shiro做安全管理。前后端分离后,前端使用ajax访问服务端程序。在未做任何处理前,ajax报错:
Access to XMLHttpRequest at 'http://127.0.0.1:8080/login/checkLogin' from origin
'http://localhost:63342' has been blocked by CORS policy: No 'Access-Control-Allow-Origin'
header is present on the requested resource.
明显是跨域问题引起的浏览器无法正常接收服务端的响应。服务端对响应头信息做出统一拦截修改后,跨域问题解决。但shiro的授权管理
Subject currentUser = SecurityUtils.getSubject();
currentUser.isAuthenticated(); // 每次请求,都是返回false
isAuthenticated()每次请求都返回false
排除半天,发现每次请求的sessionId均不一样。想还是ajax的跨域问题没有完全解决。进一步解决后,记录如下:
- 问 题 1 : a j a x 跨 域 问 题 \color{#FF3030}{问题1:ajax跨域问题} 问题1:ajax跨域问题
- 问 题 2 : a j a x 每 次 访 问 后 端 , s e s s i o n I d 均 不 同 \color{#FF3030}{问题2:ajax每次访问后端,sessionId均不同} 问题2:ajax每