cookies - 跨域 Cookie

标签 cookies web-applications cross-domain

我在两个不同的域中有两个网络应用程序 WebApp1 和 WebApp2。

  1. 我在 HttpResponse 的 WebApp1 中设置 cookie。
  2. 如何从 WebApp2 中的 HttpRequest 读取相同的 cookie?

我知道这听起来很奇怪,因为 cookie 是特定于给定域的,我们无法从不同的域访问它们;不过,我听说过跨域 cookie,它可以在多个网络应用程序之间共享。如何使用跨域cookie来实现这个要求?

注意:我正在尝试使用 J2EE webapps

最佳答案

是的,完全可以通过domain2.exampledomain1.example获取cookie。我的社交网络的社交插件也遇到了同样的问题,经过一天的研究,我找到了解决方案。

首先,在服务器端您需要具有以下 header :

header("Access-Control-Allow-Origin: http://origin.domain:port");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Methods: GET, POST");
header("Access-Control-Allow-Headers: Content-Type, *");

在 PHP 文件中,您可以使用 $_COOKIE[name]

第二,在客户端:

在您的 AJAX 请求中,您需要包含 2 个参数

crossDomain: true
xhrFields: { withCredentials: true }

示例:

type: "get",
url: link,
crossDomain: true,
dataType: 'json',
xhrFields: {
  withCredentials: true
}

关于cookies - 跨域 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3342140/

相关文章:

php - 混淆(如果有的话)$_SESSION 和 $_COOKIE 变量?

javascript - 如何使用 Chrome 扩展程序访问 CookieStore?

django - 如何让Django始终加载在内存中?

web-applications - URL slug 的理想长度是多少

javascript - Document.domain 未按预期运行

android - 使用 HTTPUrlConnection 持久存储 Cookie

javascript - node.js socket.io 获取 cookie 值

email - Web应用程序中 token 认证的最佳做法?

javascript - CORS 相对于跨域消息传递的优势

javascript - 检测服务器/站点对跨域 XMLHttpRequests 的支持?