2012-04-05 65 views
1

我有兩個域 - abc.com和xyz.com。我有一個將xyz.com指向abc.com的CNAME。 xyz.com設置一個cookie nx = true。鑑於此設置,我應該能夠閱讀abc.com上的cookie。這裏有一個Java代碼示例`輸入代碼CNAME和cookies

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    PrintWriter out = response.getWriter(); 

    Enumeration<String> h = request.getHeaders("Cookie"); 
    while (h.hasMoreElements()) { 
     out.println("From request.getHeaders(\"Cookie\")-->" + h.nextElement().toString()); 

    } 
     out.flush(); 
    out.close(); 

} 
+1

看起來像你在添加Java代碼之前按下輸入...(並且不,跨域cookie不會*假設*即使這兩個站點託管在同一臺機器上也能正常工作 - 共享主機將如何安全如果是這樣的話) – 2012-04-05 00:07:35

+0

是我實際粘貼的代碼之前發送發送.. – Fadi 2012-04-05 00:11:58

+0

@Fadi然後點擊編輯並修復問題/職位;-) – RobIII 2012-04-05 00:12:51

回答

3

瀏覽器不知道(或不在乎)它是CNAME,A記錄還是別的;所有它知道的是,這是一個不同的域,你不能設置跨域cookie。您可能想查看「How Facebook sets and uses cross-domain cookies」或this SO answer

如果您必須爲域abc.foo.com和xyz.foo.com設置Cookie,那麼這是一個完整的其他球類遊戲。在這種情況下,您只需將cookie的域設置爲不包含「子域」,「主機名」,無論您想調用「abc」還是「xyz」。

欲瞭解更多信息,檢查出this Wikipedia article