cookie完全跨域
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
?
轉載于:https://www.cnblogs.com/chenqianpeng/archive/2012/04/24/2468493.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的cookie完全跨域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SDUT 2401 最大矩形面积
- 下一篇: Impress.js教程