php – IE在打印时不重新发送cookie

前端之家收集整理的这篇文章主要介绍了php – IE在打印时不重新发送cookie前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 PHP页面request.PHP在飞行中呈现的图像.由于其包含的数据的性质,此图像无法缓存.由request.PHP呈现的图像取决于用户的Cookie.当我从IE8和IE9打印时,尝试下载request.PHP返回的图像时,这些Cookie不会在请求头中发送.我通过使用Fiddler和监控请求/响应标头来确定这一点.

我的第一个想法是将cookie信息放在request.PHP的URL中,但是有一个问题.我设置的cookies是由httponly标志设置的(出于安全考虑).换句话说,我无法从脚本访问这个cookie.我使用jQuery来设置图像的源,像$(“#myimage”).attr(“src”,“request.PHP?d =”dynamic_set_data_string);由于httponly标志,没有办法将任何Cookie信息附加到此jQuery调用.

我无法使用base64直接在src属性中包含图像数据,因为图像太大(IE8具有32KB限制).

在打印/打印预览中要求非缓冲图像的请求中强制IE发送Cookie吗?

进行研究后,IE浏览器无法在打印时将缓存图像的请求标头中的Cookie数据发送出去.为了解决这个问题,我使用window.onbeforeprint事件为我的图像的URL添加一个cache = true参数.在后端,我设置要缓存的图像的标题在短时间内.虽然这不能解决问题(因为我不相信有一个真正的解决方案),它确实规避了这个问题,IE可以打印图像.

猜你在找的PHP相关文章