1

我有一个网络应用程序,当单击链接时,它会打开一个新的浏览器窗口(使用 window.open)。第一次打开窗口时,它仍然是空的。该调用是对报告生成器的调用,这将返回一个 PDF 文档。

如果第二次单击链接或刷新新窗口,则会显示正确的内容。

这只发生在生产服务器上的 IE(我使用的是 IE8)中,而不是测试服务器上。

我使用 HttpAnalyser 来检查流量,但我无法发现不同场景之间的任何差异。

这是脚本

var url = "http://myserver/webapps/birt/run?__title=MMS Report&__report=Report/" + report + "&__lc=en&__format=pdf&__runtime=prod&";
var chk = document.getElementById('chkPageBreak');
if(chk && chk.checked) url += "PageBreak=true&";
if(params) {
    params = params.replace('%MMSFAIRID%', '25');
    params = params.replace('%LANGUAGE%', 'en');
}
url += params;
birturl = url;
birtwin = window.open(url,'MMSBIRT', 'menubar=0,location=0,toolbar=0,resizable=1,status=1,scrollbars=1');

为什么会发生这种情况?我能做些什么来防止它?

谢谢!

更新

这是请求

GET /webapps/birt/run
    ?__title=MMS%20Report
    &__report=Report/emosBuildStaffGrouped.rptdesign
    &__lc=en
    &__format=pdf
    &__runtime=prod
    &MmsFairId=25
    &Language=en
    &Inland=false

这是回复

HTTP/1.1 200 OK
Date: Mon, 16 Jul 2012 12:30:31 GMT
Server: IBM_HTTP_Server
Content-Disposition: inline; filename="emosBuildStaffGrouped.pdf"
Set-Cookie: JSESSIONID=xxxxxxxxxxxxx:-1; Path=/
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Cache-Control: no-cache="set-cookie, set-cookie2"
Keep-Alive: timeout=10, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/pdf
Content-Language: de-DE

刚刚引起我注意的是奇怪的 Expires 值。1994?!?不知道那是从哪里来的。当我刷新页面时,没有收到 Set-Cookie 也没有收到 Expires....

4

0 回答 0