和birt版本没关系,甚至和birt都没有关系,是由于浏览器的安全限制,Iframe跨域访问时,被访问的页面无法使用浏览器cookie,从而没办法保持session造成的。
在被访问的页面加上P3P头就可以解决。
代码如下:
response.addHeader("3P","CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR")
你也可以在被请求的页面中添加如下代码:
response.addHeader("3P","CP=CAO PSA OUR");
如果你照这两种方法还没弄好的话,问题可能出在其他地方了,这种情况下,我就建议你直接换报表了,因为你每次查错太费时间了,直接换用finereport这类的报表要省事许多