- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我遇到跨域 AJAX 请求的问题。
此问题涉及三台服务器。我们可以称它们为 A1、A2 和 B。
A1 和 A2 运行相同的应用程序代码。它们是同一 Web 应用程序的两个暂存实例。 B 是另一个网络应用程序。
我们需要执行从A web 应用程序到B 应用程序的跨域AJAX 请求。我们尝试启用 CORS,但很难让它在 IE <= 8 中令人满意地工作,所以现在我们正在使用 nginx 代理规则。因此,流程是:浏览器 ajax 请求 -> A1 或 A2 -> nginx 代理 -> B
B 是有状态的,需要用户的 session cookie 才能运行。
我们看到的是,当使用服务器 A1 时,它可以正常工作,但是当使用服务器 A2 时,B 无法拉取出 cookies 。
我查看了来自A1 和A2 的请求的 header ,它们是相同的。两者在标题中都有 cookies 行,两者具有相同的来源等。
在 B 上,我们看到当请求来自 A2 时 $_COOKIE['session_key'] 为空,但当请求来自 时正确填写>A1。
奇怪的是,它只缺少从 header 中的 cookie 中提取一个特定的 cookie key ,并且仅当请求来自 A2 时。它可以很好地解析来自 A2 的 header 中的所有其他 cookie,只是由于某种原因无法解析用户的 session cookie,但如果请求来自 A1,它就可以了.
我已经使用了 tcpdump 并获取了其中每一个的 pcaps 并对它们进行了比较, header 中没有任何内容看起来特别不同。
我发现了这个 Stack Overflow 问题,人们说这是因为他的 cookie header 字符串太长:What could cause cookie to not be set in $_COOKIE when it's in $_SERVER我不认为这太长,因为我的只有 249 个字符长,无论是成功的还是失败的。
我正在考虑从 $_SERVER 中提取 cookie 并手动解析它们,但这听起来真的很愚蠢,我更愿意找出潜在的问题。
最佳答案
使用 IE<=8 时的一个问题是 P3P .我发现将 P3P header 放入接受您的 AJAX/JSON 请求的页面(您的实例中的服务器 B)将解决此问题:
header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
至于服务器A2
不向服务器B
发送$_COOKIE
请求,我建议使用_GET
发送请求code> 到 server B
上的某种 init
页面。这样它就可以被处理,并存储在服务器B
上。然后对于所有必须存在此信息的剩余页面,您可以查看服务器B
以确定信息是否已发送,或者不断向每个页面发送_GET
数据并将其与手头已有的信息进行比较。提醒一下,应该严格监控此信息,因为它更容易修改。
抱歉,我知道这不能解决问题,但可以提供替代解决方案。
关于php - PHP 如何将原始 cookie 解析为 $_COOKIE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14629953/
我花了一些时间试图追踪 a particular Laravel bug 的根本原因,因为最初的 GitHub 问题在没有解决的情况下被关闭。 经过一段时间的试验,我发现 session 正在重新生成
我遇到了一个奇怪的问题。我正在将 AJAX 发送到设置 $_COOKIE['cookieName'] 的 PHP 文件然后我在主文件中回显该 cookie。 问题:如果处理 AJAX 的 PHP 文件
我正在网页上工作。以下代码在 single.php 中。 首先,如果有人打开页面/帖子 + 1,我会计算每次。 = 3){ //If its more than 3, cookie reset
我试图在 cookie 中插入多个值,但我只能存储一个值。听到是我的代码。 "> submit 和我的 result4.php '; print_r($_COOKIE["lastvi
假设我有一个网站 www.mysite.com。 $_COOKIE 数组是否可以包含由 www.mysite.com 以外的域设置的 cookie,如果我使用 $_COOKIE > 通过域 www.m
我已经下载了这样的脚本: $QUERY_STRING="login"; if (file_exists("passwd.dat") && $QUERY_STRING != ""): requ
我将一个 cookie 分配给一个变量: $user_cookie = $_COOKIE["user"]; 我如何检查 $user_cookie 是否收到了一些值? 我应该使用 if (empty($
大约几周前,我在创建登录页面时了解了 $_SESSION。我可以成功登录并将其与变量一起使用。目前我正在尝试理解 $_SESSION 和 $_COOKIE。如果我错了请纠正我,我可以在登录和移动页面时
我是网络应用程序和 PHP 的新手。 我正在尝试获取尚未创建的 cookie,我的意思是,当我尝试加载查找不存在的 cookie 的页面时出现错误,我尝试通过尝试摆脱它/catch 但没有成功。这是我
所以我正在为自己创建一个博客,并且为了给自己设置一个 cookie 的管理员权限。 我已经手动检查了它的存在。 我已经使用 apache 服务器在我的笔记本电脑上测试了代码,代码工作正常。 我有两个p
在 TypoScript 中可以获取环境变量 HTTP_COOKIE_VARS (已弃用): 10 = TEXT 10.data = global : HTTP_COOKIE_VARS | some_
我有一个 JavaScript 可以保存复选框状态,将其放入 cookie 中,然后在我的表单中重新填充我的复选框。我现在想做的是用 php 将一堆“if 语句”放在一起,然后为那些“true”的字符
我目前正在使用 PHP 制作一个简单的登录系统,何时编写此内容 $sql = "SELECT * FROM logintoken WHERE token ='".$_COOKIE['SNID']."'
我不记得过去使用 Cookies 时遇到过很多问题,但我一直在尝试并遇到了一些意想不到的结果。 (我在本地主机上运行,因此我的域设置) "; echo "Cookie equals: ".$_CO
我正在尝试在 PHP 中调用 setcookie() 函数后立即访问 cookie 的值(使用 $_COOKIE)。当我这样做时, $_COOKIE['uname'] 没有设置。为什么? 但请注意,$
大多数情况下,我使用过$_SESSION,但是在阅读有关 Session 的内容时,我得到的术语很少 $_ENV & $_COOKIE。 我不清楚什么时候使用哪个,我对我可以使用它们的情况感到困惑。那
我遇到跨域 AJAX 请求的问题。 此问题涉及三台服务器。我们可以称它们为 A1、A2 和 B。 A1 和 A2 运行相同的应用程序代码。它们是同一 Web 应用程序的两个暂存实例。 B 是另一个网络
$_SERVER['HTTP_COOKIE'] 和 $_COOKIE 有什么区别? 为什么 $_SERVER['HTTP_COOKIE'] 没有记录在 PHP 手册中? 我正在创建一个用于管理 coo
所以根据我对 PHP 和 cookie 的理解,如果我使用 setcookie() 函数,那么我会得到一个自动 url 编码的 cookie。当我转到 $_COOKIE 数组时,我应该取回 cooki
$user = $_COOKIE["username"]; $admin = $db->query(" SELECT * FROM users WHERE us
我是一名优秀的程序员,十分优秀!