Dav*_*ave 10 php printing cookies jquery internet-explorer
我有一个PHP页面request.php动态呈现的图像.由于其包含的数据的性质,无法缓存此图像.request.php呈现的图像取决于用户的cookie.当我从IE8和IE9进行打印时,在尝试下载request.php返回的图像时,这些cookie不会在请求标头中发送.我通过使用Fiddler和监视请求/响应头来确定这一点.
我的第一个想法是将cookie信息放在request.php的URL中,但这有问题.我设置的cookie是使用httponly标志集创建的(出于安全原因).换句话说,我无法从脚本访问此cookie.我确实使用jQuery来设置图像的源代码,$("#myimage").attr("src", "request.php?d=" + dynamically_set_data_string);因为httponly标志没有办法将任何cookie信息附加到这个jQuery调用.
我无法使用base64直接在src属性中包含图像数据,因为图像太大(IE8限制为32KB).
是否有一个技巧迫使IE在打印/打印预览期间发出的未缓存图像请求中发送cookie?
经过研究,IE 似乎无法在打印时在请求标头中发送未缓存图像的 cookie 数据。为了解决这个问题,我使用该事件向图像的 URLwindow.onbeforeprint添加一个参数。cache=true在后端,我设置了要在短时间内缓存的图像的标头。虽然这不能解决问题(因为我不相信有真正的解决办法),但它确实规避了问题,并且 IE 能够打印图像。