跨域调用COOKIES 超级简单

发布:2011-03-28 15:54   点击664次   评论:0


http://www.im286.com/thread-7016973-1-1.html
跨域调用COOKIES 超级简单。

A站iframe引用其它站(B站)的内容时,B站的页面获取不到B站种下的Cookies。如果页面是来自框架的,而框架的父页和框架不是一个站点的话,客户端默认是禁止向页面附加头信息的,这样服务器端就无法识别客户端框架里面的页面,自然不能操作Session。
解决方案:
一种是:直接改IIS设置
第二种是:直接在ASP头部加了头部申明
下面是第二种方案
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")

转自:http://www.xueit.com/html/2009-01/21_239_00.html

通过P3P接口跨域调用COOKIE (2008-10-30 12:05:50)转载
标签: 跨域 cookie 杂谈        分类: 我是PHPer
测试环境
127.0.0.1        www.a.com
127.0.0.1        www.b.com
首先:创建 a_setcookie.php 文件,内容如下:
<?php
//header(''P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'');

setcookie("test", $_GET[''id''], time()+3600, "/", ".a.com");
?>
然后:创建 a_getcookie.php 文件,内容如下:
<?php
var_dump($_COOKIE);
?>
最后:创建 b_setcookie.php 文件,内容如下:
<script src="http://www.a.com/a_setcookie.php?id=www.b.com"></script>
----------------------------
三个文件创建完毕后,我们通过浏览器依次访问:
http://www.b.com/b_setcookie.php
http://www.a.com/a_getcookie.php
我们会发现,在访问b.com域的时候,我们并没有在a.com域设置上cookie值。
然后我们修改一下a_setcookie.php文件,去掉注释符号,a_setcookie.php即为:
<?php 
header(''P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"''); 

setcookie("test", $_GET[''id''], time()+3600, "/", ".a.com"); 
?>
转自:http://blog.sina.com.cn/s/blog_4495c9610100biih.html

以下是soguo原创
php写的已经很清楚了,参考PHP ASP代码如下
a.com cookies.asp
<%
Response.AddHeader "P3P", "CP=CAO PSA OUR"
if request.Cookies("test")="" then
        response.Cookies("test")=request("id")
        response.Cookies("test").Expires=dateadd("d",7,date)
        response.Cookies("test").path="/"
end if
%>
b.com ceshi.asp

<script src="http://www.a.com/cookies.asp?id=ceshi"></script>

这样就可以在a.com中通过引用<script src="http://www.a.com/cookies.asp?id=ceshi"></script> 达到 在b.com写入COOKIES的目的

没太清晰写,抛砖引玉吧,因为转载的写的比较清楚了,
我竟然搜索了好几个小时才找到这两个页面,以前搜索过好几次都没找到过

搜索还得到一个知识 jsonp 可以跨域 调用 但没看懂




asp : Win2003 + IE8下, Cookies,  Session 都不成功!


xxx.com/main.asp
<%Response.AddHeader "P3P", "CP=CAO PSA OUR"%>
<%
Session("s_main") = Timer()&"@s_main"
Response.Write "<br>1."&Session("s_main")
Response.Write "<br>2."&Session("s_inn")

Response.Cookies("cGroup1")("c_main") = Timer()&"@c_main" ''赋值
Response.Write "<br>3."&Request.Cookies("cGroup1")("c_main")
Response.Write "<br>4."&Request.Cookies("cGroup1")("c_inn")
%>
<br />
<iframe src="/app2/inn.asp"></iframe>
<p><br />
  Asp操作Cookies(设置[赋值]、读取、删除[设置过期时间])<br />
  Response.Cookies(&quot;letwego&quot;)(&quot;visiter&quot;)=&quot;84ww&quot; ''赋值<br />
  Response.Cookies(&quot;letwego&quot;).Expires= (now()+7) ''设置过期时间(7天)<br />
  userName=Request.Cookies(&quot;letwego&quot;)(&quot;visiter&quot;) ''取Cookies<br />
  Response.Cookies(&quot;letwego&quot;).Expires= (now()-1) ''删除Cookies,设置过期时间(-1天)
</p>
<p><a href="go.asp">Go&gt;&gt;&gt;</a></p>


yyy.com/inn.asp
<%Response.AddHeader "P3P", "CP=CAO PSA OUR"%>
<%
Session("s_inn") = Timer()&"@s_inn"
Response.Write "<br>1."&Session("s_main")
Response.Write "<br>2."&Session("s_inn")

Response.Cookies("cGroup1")("c_inn") = Timer()&"@c_inn" ''赋值
Response.Write "<br>3."&Request.Cookies("cGroup1")("c_main")
Response.Write "<br>4."&Request.Cookies("cGroup1")("c_inn")
%>

关于 GitHub 导航 部门 反馈

提示:`/home.php`入口数据仅为演示功能,不构成任何交易凭证,也不承担相关风险和责任!

Copyright © 2011-2018 xxxxx.com All rights reserved.

Run:9.749/56.560(ms); 7(sql)/2.889(MB); comm:news/detail; Upd:2024-05-06 00:51:12