注:从网上找的资料整理
1.web.xml配置过滤器,全局设置
@Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res; HttpServletRequest request = (HttpServletRequest) req; response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin")); response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, If-Modified-Since"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.addHeader("Access-Control-Allow-Credentials", "true"); response.setCharacterEncoding("UTF-8"); response.setContentType("application/json"); //放行 chain.doFilter(request, response); }
注意事项:如果有多个过滤器,要保证这个过滤器在前面
2.前端ajax配置允许携带cookie( xhrFields: {withCredentials: true}),否则无法获取cookie;axios的设置方法,自行百度
<script>
$.ajax({
type: 'get',
url: 'http://localhost:8080/user/getUserLog.action',
data: {},
dataType: 'json',
xhrFields: {withCredentials: true},
success: function (res) {
console.log(res);
},
error: function (e) {
}
});