close

本次專案需求是需要在A網的html頁面中夾一個iframe

目標是B網的ASP.NET頁面

以往因為都是在本機上做iframe夾頁所以都沒遇過相關問題

 

所以預先處理的項目是將.NET最常處理的crossdomain.xml做上去

沒想到卻還是發生了使用IE瀏覽時

.NET頁面在按button的時候無法動作

其他瀏覽器則可以正常運行

而頁面是用updatepanel包的

嘗試了幾小時在crossdomain方面尋找問題卻沒辦法處理

最後找到的關鍵在IE會因為跨網域iframe夾頁時無法使用cookies

這是IE的安全性限制導致的問題

 

根據這篇文章 IE里Cookie跨域不能读取 得知

只需要在HTTP標頭加上 P3P HTTP Header 就可以了

P3P: CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'

ASP直接在头部加了头部申明,测试有效。
<%Response.AddHeader "P3P", "CP=CAO PSA OUR"%>

php的话,应该是如下写法:
header('P3P: CP=CAO PSA OUR');

ASP.NET的话
通过在代码上加Response.AddHeader("P3P", "CP=CAO PSA OUR")或者在Window服务中将ASP.NET State Service 启动。

JSP:
response.setHeader("P3P","CP=CAO PSA OUR")

 

ASP.NET State Service的部分,我並沒有做過測試

基本上加上response.addHeader就已經可行

arrow
arrow
    文章標籤
    ASPNET iframe 跨網域
    全站熱搜

    longlang0616 發表在 痞客邦 留言(0) 人氣()