首先,我不确定这是否是Opera 12.01的问题,但问题仅在Opera中发生。我在FF14、Chrome 21、Safari 5(Windows)、Safari Mac以及Android和iPhone上的Webkit浏览器中进行了测试。
我的应用程序运行在trigger.io forge平台上,并使用代理将请求从Web应用程序路由到服务。代理仅转发请求和cookie,大多数浏览器中都能正常工作。
在检查dragonfly中的请求后,我注意到服务器在响应中发送了正确的标头,但似乎Opera忽略了设置值。我想知道这是否是由于cookie的路径值设置错误所致。我附加了Firefox和Opera的2个请求的屏幕截图。
正如您在屏幕截图中看到的那样,Firefox看到cookie标头并适当地设置它们,但是Opera没有。
我没有包含执行请求转发的代理代码,因此如果您需要了解相关信息,请告诉我。在服务端,我正在运行PHP和Codeigniter。如果需要在我的环境中添加更多信息,请告诉我,谢谢。
更新:该问题甚至出现在我的生产环境中,该环境未使用自定义顶级域名。其他使用cookie的网站正常工作且启用了cookie。
operaprefs.ini
中的[User Prefs]
下设置“不显示Cookie域错误=0”,以查看Opera是否由于对私有.locdev
TLD的适当限制级别存在不确定性而拒绝了该cookie。 - eggyal