该应用程序有一个带有缩略图的页面。单击缩略图会调用播放器对象上的 SetURL() javascript 函数。
在 Windows 上的 Safari 中,大约 75% 的时间,插件会发出请求,发送 cookie,然后一切顺利。另外 25% 的时间,它在一半的时间内都无法加载,当它加载时,它不会循环。当它失败时,我们会看到以下请求:
127.0.0.1 - [20/May/2009:11:15:19 -0400] "GET /full/?id=1 HTTP/1.1" 302 - "-" 80 7542 0 QuickTime/7.6 (qtver=7.6;os= Windows NT 5.1Service Pack 3) 127.0.0.1 - [20/May/2009:11:15:19 -0400] "GET /denied/ HTTP/1.1" 200 3385 "-" 80 9050 0 QuickTime/7.6 (qtver=7.6 ;os=Windows NT 5.1Service Pack 3) 127.0.0.1 - [20/May/2009:11:15:20 -0400] "GET /full/?id=1 HTTP/1.1" 200 2639638 "-" 80 2005787 2 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) 版本/3.2.1 Safari/525.27.1
第一个请求直接来自插件,并且该请求不包含会话 cookie,因此应用程序将其重定向到“未经授权的访问”页面。然后我们看到插件向重定向页面发出请求。然后我们看到来自浏览器本身的相同初始请求。该请求包含 cookie,因此它成功。大约一半的时间,电影播放,另一半没有。
正如我所说,如果我们在一个页面上有 10 个缩略图,那么其中至少 7 个都可以正常工作,因此我们知道插件实际上已加载。没有 javascript 错误。
我在 IE 中看到过类似的行为,但无法始终如一地重现它。
想法?