跨域请求时的 cookie 传送情况

自己动手做了一个实验,跨域的时候,确实是可以送出远方域名的 cookie 的:

首先在本地配两个域名,先修改 apache 的配置文件 httpd.conf ,加入:

NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
DocumentRoot "D:Documentscodewampwwwdm1"
ServerName dm1.local
</VirtualHost>

<VirtualHost 127.0.0.1>
DocumentRoot "D:Documentscodewampwwwdm2"
ServerName dm2.local
</VirtualHost>

然后还需要修改 hosts 文件,一般在 C:WindowsSystem32driversetc 加入:

127.0.0.1		dm1.local
127.0.0.1		dm2.local

然后构造两个域名下的文件,首先分别在各自的域名下设置一个 greeting 的字符串,即在 dm1 下准备好:

<?php
setcookie("greeting", "hello1");
?>

同样的在 dm2 下准备好:

<?php
setcookie("greeting", "hello2");
?>

分别访问一次,来写入 cookie ,然后在 dm1 下准备:

<?php
$val = $_COOKIE["greeting"];
echo "alert('$val')";

在 dm2 下准备:

<script src="http://dm1.local/index.php"></script>

访问 dm2 下的文件,可以看到弹出了写在 dm1 域名下的 cookie:

One thought on “跨域请求时的 cookie 传送情况

  1. Pingback: Apache 多虚拟主机 | ZRJ

Leave a Reply

Your email address will not be published. Required fields are marked *