今天遇到一個(gè)十分怪異的問(wèn)題:站點(diǎn)www.parent.com的頁(yè)面中通過(guò)iframe包含了站點(diǎn)www.son.com的頁(yè)面,測(cè)試中發(fā)現(xiàn)當(dāng)使用firefox/chrome瀏覽站點(diǎn)www.son.com的頁(yè)面均正常顯示,而換用IE后便出現(xiàn)錯(cuò)誤。
一開(kāi)始我懷疑IE對(duì)iframe中的src屬性有所限制,比如:不接受服務(wù)器端header重定向,因?yàn)槲以?/span>www.son.com的頁(yè)面中使用了header重定向功能,但跟蹤的結(jié)果是所有的URL參數(shù)都正常;繼而又開(kāi)始trace程序,最終確定在出錯(cuò)前的一步所有的輸入、輸出均正確無(wú)誤;無(wú)奈之下只好打印不同瀏覽器下的cookie,看看他們是否存在差異,殊不知這一trace大吃一驚:IE瀏覽器下www.son.com頁(yè)面無(wú)法正確的獲取其設(shè)置cookie?!
隨google之,然后發(fā)現(xiàn)了這個(gè)說(shuō)明:http://www.microsoft.com/windowsxp/downloads/updates/sp2/docs/privacy_ie.mspx
讀罷才知道在IE6+或者windows SP2+系統(tǒng)中,微軟添加了P3P隱私保護(hù)協(xié)議的支持,并且默認(rèn)阻止第三方無(wú)隱私安全聲明的cookie。
這樣一來(lái)IE瀏覽器就能按照你聲明的隱私范圍處理了。
常見(jiàn)的做法是發(fā)送如下的header頭:P3P: CP=CAOPSA OUR,在PHP中你可以這樣做:header('P3P: CP=CAO PSA
OUR');
關(guān)于P3P更多的資料請(qǐng)翻閱:http://www.w3.org/P3P
|