日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于 p3p ie 跨域 问题

發布時間:2023/11/30 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于 p3p ie 跨域 问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.二級域名

HTML code
<%@ Page Language="C#"%>
<%
HttpCookie hc = new HttpCookie("OutByTopDomain", "OutByTopDomain" + DateTime.Now.ToString());
hc.Expires = DateTime.Now.AddDays(30);//過期時間為30天
hc.Domain = "你的頂級域名";//設置共享域,如aa.com,bb.aa.com等,可以設置為aa.com,這樣可以在子域共享
Response.Cookies.Add(hc);
%>
subdomain.aspx,子域讀cookie

HTML code
<%@ Page Language="C#"%>
<%
Response.Write("頂級域名產生的Cookie==|" + Response.Cookies["OutByTopDomain"].Value + "|===");
%>

2.sso方案


?通過設置p3p頭來實現跨域訪問cookie

今天在w3網站上看到了一篇介紹p3p的文章(http://www.w3.org/TR/P3P/),利用這個可以實現跨域訪問cookie,我也試驗一下。 其實很簡單:試驗用了2個域名readlog.cn和diaor.com 首先在readlog.cn下放置一個文件setcookie.php 內容:? PHP代碼 header(’P3P: CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND

?PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"’);//p3p?? setcookie("TestCookie","test",time()+3600,"/",".readlog.cn");//設置cookie? 再放置一個readcookie.php 內容: 然后在diaor.com下放置setcookie.php ,內容: JavaScript代碼 1. <script src="http://www.readlog.cn/setcookie.php"></script>? 然后訪問http://www.diaor.com/setcookie.php 抓取數據包可以發現,在readlog.cn域下生成了一個cookie ,名稱是TestCookie,值是test 下面訪問http://www.readlog.cn/readcookie.php 來驗證一下,可以發現,cookie確實設置成功了。 有興趣可以去掉header(’P3P: CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IN

D PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"’);這句,試一下就會發現cookie能設置,但是在readlog.cn讀不到這個cookie。

------IIS 通用設置

打開IIS

?

管理工具——〉選擇一個網站——〉屬性——〉http頭,增加一個http頭 然后輸入頭名:P3P

輸入頭內容:CP=CAO PSA OUR

------HttpModual實現

可以用httpmodual來實現在全部頁面或者部分頁面頭部插入所需要的標志

------老外的解決方案

http://articles.sitepoint.com/article/p3p-cookies-ie6/2

-----P3P設置驗證

http://www.w3.org/P3P/validator.html

利用js解決ajax跨域問題

由于安全性問題, ajax在進行請求數據時,不能跨域請求. 比如 在 http://www.a.com/ 下的頁面, 無法ajax請求www.b.com/ajax.php的內容. 盡管這樣的需求不多,但遇到了怎么辦? 這里給出一個JS模擬ajax的方式實現跨域, 但僅僅局限于GET!

在 <script> 標簽中, src的屬性是可以設置非本域下的地址的. 借助此特點,即可模擬ajax的方式實現跨域. 假設 http://www.a.com/ 域名下的程序 需要通過ajax方式提交數據到 http://www.b.com/ 下的login.php?username=*&passwod=*實現登陸判斷. 實現方式如下: 在http://www.a.com/內動態創建JS的方式來加載http://www.b.com/的內容,代碼如下

JavaScript代碼
//此代碼在http://www.a.com/下???
var head = document.getElementsByTagName("head")[0];???????
var js = document.createElement("script");???????
js.src = "http://www.b.com/login.php?username=*&passwod=*";???????
js.onload = js.onreadystatechange = function()???????
{???????
??? if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")???????
??? {???
???????? head.removeChild(js);???
???????? //JS加載完畢了. 類似于ajax請求完成.???
???????? //執行是否登陸成功的判斷???
??? }???????
}???????
head.appendChild(js);??
這只是一個簡單的例子,需要b.com下的login.php做好配合,login.php通過GET取得傳入值,并生成JS的登陸標記. JS加載完成后,根據JS標記判斷登陸的狀態,提示登陸成功或失敗.即可完成要求,代碼兼容常見瀏覽器. :)

當然缺陷也很明顯,只能支持GET的方式提交數據. 下一次我會在說說ajax跨域POST的方法.

?????????????????????????????????????????? 用JS或jQuery訪問頁面內的iframe,兼容IE/FF

js或者jQuery訪問頁面中的框架也就是iframe. 注意:框架內的頁面是不能跨域的! 假設有兩個頁面,在相同域下. index.html 文件內含有一個iframe:

XML/HTML代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">??
<html xmlns="http://www.w3.org/1999/xhtml">??
<head>??
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />??
<title>頁面首頁</title>??
</head>??
??
<body>??
<iframe src="iframe.html" id="koyoz" height="0" width="0"></iframe>??
</body>??
</html>??
iframe.html 內容:

XML/HTML代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">??
<html xmlns="http://www.w3.org/1999/xhtml">??
<head>??
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />??
<title>iframe.html</title>??
</head>??
??
<body>??
<div id="test">www.koyoz.com</div>??
</body>??
</html>??
1. 在index.html執行JS直接訪問:

JavaScript代碼
document.getElementById('koyoz').contentWindow.document.getElementById('test').style.color='red'??
通過在index.html訪問ID名為'koyoz'的iframe頁面,并取得此iframe頁面內的ID為'test'的對象,并將其顏色設置為紅色.

此代碼已經測試通過,能支持IE/firefox . 2. 在index.html里面借助jQuery訪問:

JavaScript代碼
$("#koyoz").contents().find("#test").css('color','red');??

?

?

?

轉載于:https://www.cnblogs.com/skyangell/archive/2010/03/11/1683085.html

總結

以上是生活随笔為你收集整理的关于 p3p ie 跨域 问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。