两个不同主域之间跨域设置cookie值
应用说明: (1)两个网站主域名不同才需要这样跨域设置(如:***.a.com,***.b.com ,a 和 b 不同的情况) (2)chrome浏览器内核才需要这样跨域设置(chrome edge 360 需要,firefox不需要,ie目前未试通) (3)浏览器登录a系统拿到cookie值,然后在a系统网页中带着cookie值参数调用b系统接口设置b主域cookie值。
1、提供cookie值一方,在网页中以ajax方式调用被设置cookie值方的接口,发送cookie值【网站可以是http/https协议】
$.ajax({ url:"https://***/***/setCookie", xhrFields: { withCredentials: true }, data: { cookieName:zxwCookieName, cookieValue:我的测试cookie值, maxAge:30 } })
2、被设置cookie值一方,提供无权限验证接口。【网站必须是https协议】
接口前缀地址:https://***/*** @CrossOrigin @GetMapping("/setCookie") public void setCookie(String cookieName, String cookieValue, Integer maxAge, HttpServletResponse response){ maxAge = maxAge == null ? 3600*24 : maxAge; response.setHeader("Set-Cookie", cookieName+"="+cookieValue+";SameSite=None;Secure;path=/;Max-Age="+maxAge);
response.addHeader("Access-Control-Allow-Credentials", "true"); response.addHeader("Access-Control-Allow-Origin", request.getHeader("origin")); }
