實現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。瀏覽器

相關文章
相關標籤/搜索