javascript - 使用 PHP 或 JavaScript 在多个域上设置 cookie

标签 javascript php cookies setcookie

我有 3 个主题相同的域。如果有人选择不同的主题,我希望它在所有 3 个域中传播,以便他们的体验保持不变。

我计划通过在 domain1 上设置 cookie,重定向到设置 cookie 的 domain2,重定向到设置 cookie 的 domain3,再重定向回来来实现这一点。由于信息不需要安全或保护,因此这可以正常工作,没有实际问题。

我讨厌想法 3 重定向只是为了在每个域上设置一个 cookie,并且正在寻找更优雅的东西。

最佳答案

做谷歌正在做的事。是的,Google 正在使用相同的技巧让用户登录 YouTube 和其他位于不同域的 Google 服务。

创建一个 PHP 文件,在所有 3 个域上设置 cookie。然后在要设置主题的域上,创建一个 HTML 文件,该文件将加载在其他 2 个域上设置 cookie 的 PHP 文件。示例:

<html>
   <head></head>
   <body>
      <p>Please wait.....</p>
      <img src="http://domain2.com/setcookie.php?theme=whateveryourthemehere" />
      <img src="http://domain3.com/setcookie.php?theme=whateveryourthemehere" />
   </body>
</html>

然后在body 标签上添加一个onload 回调。只有当图像完全加载时,即在其他 2 个域上设置 cookie 时,文档才会加载。加载回调:

<head>
   <script>
   function loadComplete(){
      window.location="http://domain1.com";//URL of domain1
   }
   </script>
</head>
<body onload="loadComplete()">

setcookie.php

我们使用如下 PHP 文件在其他域上设置 cookie:

<?php
if(isset($_GET['theme'])){
   setcookie("theme", $_GET['theme'], time()+3600);
}
?>

现在 cookie 设置在三个域上。

Source - My Blog

关于javascript - 使用 PHP 或 JavaScript 在多个域上设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19531183/

相关文章:

javascript - 替换ckeditor中的内容标签html

javascript - 使用javascript将小数位添加到数字中

javascript - Node.js 中的 http.request 超时回调

javascript - 如何在javascript中同时检查if和else if

ios - 在 UIWebView 中加载请求之前修改 URL

cookies - 使用 SameSite 和 Secure 属性设置 Google 跟踪代码管理器 cookie

javascript - 对象和函数之间的混淆 - JavaScript

javascript - 如何在页面加载时使用 JavaScript Alertify?

php - 如何在 MySQL 表中创建带有空格和通配符的 SQL 表名?

python - Mechanize 不想启用 cookie