实现cookie跨域访问

  需求:A系统(www.a.com)里设置一个浏览器cookie,B系统(www.b.com)须要可以访问到A设置的cookie。

  经过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。浏览器

相关文章
相关标签/搜索