这是一个非常奇怪的问题,似乎是间歇性的(尽管它现在已经开始持续发生-可能是由于Windows Update?)。
我的代码以前在IE7上运行得很好,并且继续在火狐、Chrome以及除了IE8之外的任何其他浏览器上运行。
我设置了一些会话数据,然后将用户传递给一个支付网关(Protx / Sage,如果这有什么不同的话),它在返回时需要引用我的会话数据。但是我的会话数据消失了。我没有做任何花哨的支付网关显示-没有iframes,只是一个链接,将用户带到支付页面,在相同的浏览器窗口。
在做了一些阅读之后,我尝试在我的页面中添加以下内容来强制兼容模式(因为这显然会导致IE8丢失会话数据):
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />这没有效果(但是,据我所知,支付页面并没有强制兼容模式)。
似乎有相当多的人说iframe导致了这种行为,但同样,没有使用iframe。
考虑到会话数据在IE8中的持久性-与IE7和其他浏览器不同,当启动浏览器的新实例时,浏览器的另一个实例中的任何会话都是可访问的-我很难弄清楚我的会话数据是在哪里以及如何丢失的。
发布于 2009-07-15 17:02:58
我以前用Sage Pay做过这样的事情。以下是我所做的,它可能会有所帮助:
附言:是的,我知道它不能直接回答你的问题。但也许这样做会有帮助呢?
发布于 2011-05-11 02:22:07
我也有同样的问题,我追踪到的是,如果你使用一个页面来生成会话,然后一旦它生成,你就会做一个头文件(Location:...);调用IE会认为它需要在保护模式下生成一个新的会话,并会删除前一个会话中的所有cookie。
发布于 2009-07-15 10:20:38
您如何存储会话-在cookie中还是作为页面中的隐藏变量/表单字段(如果是后者,则可能不会从支付网关返回)。
我在过去的IE和会话中也遇到过类似的问题,但这被追踪到开发测试区域,主机名中有下划线(例如test_site.internal),这导致IE无法正确保存cookies。
您可能还想尝试使用Charles Proxy来观察Internet Explorer和服务器之间的数据流,看看是否可以看到您需要的数据在什么时候停止传递。
https://stackoverflow.com/questions/1130533
复制相似问题