cookie完全跨域

Posted on 2010-12-16 15:43 蝸牛向上爬 閱讀(1081) 評論(0) 編輯 收藏
  cookie是用來在某一個域下使用的,比如在.baidu.com這個域下種一個cookie,那麼.google.com這個域就不能使用它;這是瀏覽器出於對用戶隱私保護的考慮。要實現跨域的一個思路就是:客戶端瀏覽器對某些html標籤(比如script、iframe)的src沒有進行跨域限制,用它們以GET方式夾帶本域種的cookie值動態請求外域的程序,這個外域的程序來種植該域的值爲GET參數傳過去的cookie,從而達到互通的目的。例如:
  最近上線的家天下單點登錄首頁裏有一個員工論壇的鏈接,而員工論壇部署在.soufun.com域名下。爲了實現在家天下單點登錄首頁可以直接進入員工論壇。我們的做法是:在家天下單點首頁加載完後,利用js在頁面動態添加一個script標籤,向搜房的單點的接口發請求,驗證通過後設置.soufun.com域的cookie。就有了.soufun.com域下的cookie,論壇就可以直接進入了。

這樣的做法就是所謂的“jsonp”,用iframe也可以實現同樣的效果。但是iframe存在很多瀏覽器兼容問題,個人認爲還是用jsonp更省事。

經過實際使用發現Firefox、chrome等不用P3P也可以跨域,但是IE必須用加P3P的頭信息纔可以跨域。看來IE對跨域的限制更爲嚴格!所以要想實現完全跨域,還是加上下面這句頭信息比較好:)
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA div COM NAV OTC NOI DSP COR"');

但是網上有人說P3P有安全隱患,我沒有搜到具體原因和更好的解決方案。

參考資料:http://xiaolele.javaeye.com/blog/666434

分類: JavaScript
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章