php – IE在打印时不重新发送cookie
发布时间:2020-12-13 16:27:28 所属栏目:PHP教程 来源:网络整理
导读:我有一个 PHP页面request.php在飞行中呈现的图像.由于其包含的数据的性质,此图像无法缓存.由request.php呈现的图像取决于用户的Cookie.当我从IE8和IE9打印时,尝试下载request.php返回的图像时,这些Cookie不会在请求头中发送.我通过使用Fiddler和监控请求/响
我有一个
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可以打印图像.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |