经过HTML SCRIPT标签跨域写cookie:javascript
因为html的script标签的src属性,能够支持访问任何域的资源,经过script发起一个get类型的网络请求,获取资源。html
A系统里加入:java
<script type="text/javascript" src="http://www.b.com/set_cookie?cname=token&cval=test123"></script>
经过src在www.a.com域中访问b域的set_cookie方法,调用b的controller方法将cookie写入到b域中。跨域
@Controller @RequestMapping("/set_cookie") public class SetCookieController { private final static int cookieMaxAge = 60 * 60 * 24 * 7 * 2; /** * 其它域经过页面script标签引用此controller,script标签发起的请求是get类型 */ @RequestMapping protected void index(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 将要写入的cookie项,调用者经过参数传递 String cookieName = request.getParameter("cname"); String cookieVal = request.getParameter("cval"); // 生成cookie Cookie cookie = new Cookie(cookieName, cookieVal); //存两周(秒为单位) cookie.setMaxAge(cookieMaxAge); //cookie有效路径是网站根目录 cookie.setPath("/"); //向客户端写入 response.addCookie(cookie); } }
这样在b中就能访问到a设置的cookie。浏览器