Cookies不能在Opera中正常发送

Joh*_*hnP 19 php cookies opera trigger.io

首先,我不确定这是否是Opera 12.01中的问题,但问题只出现在Opera中.我在Android和iPhone上测试过FF14,Chrome 21,Safari 5(Windows)以及Safari Mac和Webkit浏览器.

我的应用程序运行trigger.io的锻造平台,使用代理从Web应用程序的服务请求路由.代理只是简单地转发请求和cookie,这在大多数浏览器中按预期工作.

在检查了dragonfly中的请求后,我注意到服务器在响应中发送了正确的头文件,但Opera似乎忽略了设置值.我想知道这是否是由于cookie的一些配置错误的路径值.我在Firefox和Opera中添加了2个请求的屏幕截图.

正如您在屏幕中看到的那样,FF会看到cookie标题并对其进行适当设置,但Opera不会.

Firefox请求

Firefox请求

Opera请求1屏幕

歌剧要求1

Opera请求2屏幕

歌剧要求2

我没有包含执行请求转发的代理中的代码,因此如果您需要,请告诉我以获得一些见解.在服务端,我正在运行PHP和Codeigniter.如果我需要在我的环境中添加更多信息,请告诉我,谢谢.

更新:即使在我的生产环境中不使用自定义TLD,也会出现此问题.其他使用cookie的网站工作正常,并启用了cookie.

hal*_*ors 8

双引号在cookie值中是正式非法的.如果你将它们作为%22转义它将起作用.


Cos*_*siu 5

您是否检查过这是否存在cookie域的问题?我假设您正在使用Javascript来设置/读取Cookie?在任何情况下,您可能需要检查4个cookie域问题(我知道我在旧的FF版本中遇到过这些问题):

1 - 检查非法cookie字符:允许cookie字符,您可能不允许在cookie名称中使用" - "或"=",并且您根本不应在cookie中使用非ASCII字符.base64编码可能会处理这个问题.

2 - 检查您设置cookie的域(通过javascript代码或任何其他方式)是否与执行代码的域相同.

3 - 检查cookie域是否不是localhost; 看看你是否可以测试从远程域设置cookie

4 - 如果您使用JS设置cookie,请尝试测试是否可以在浏览器中使用CGI设置cookie以确保它不是浏览器问题.如果它应该工作,看看你是否可以使用JS读取cookie(而不是设置它).

让我知道评论中的内容如何,​​我已多次处理类似的问题,并且根据您对这些检查的结果,我很确定我可以帮助您解决问题.