php - 打印时 IE 不重新发送 cookie

标签 php jquery internet-explorer cookies printing

我有一张由 PHP 页面 request.php 动态呈现的图像。由于其包含的数据的性质,无法缓存该图像。 request.php 呈现的图像取决于用户的 cookie。当我从 IE8 和 IE9 打印时,在尝试下载 request.php 返回的图像时,这些 cookie 没有在请求 header 中发送。我通过使用 Fiddler 和监控请求/响应 header 来确定这一点。

我的第一个想法是将 cookie 信息放在 request.php 的 URL 中,但这样做有问题。我设置的 cookie 是在设置了 httponly 标志的情况下创建的(出于安全原因)。换句话说,我无法从脚本访问此 cookie。我确实使用 jQuery 来设置图像的来源,例如 $("#myimage").attr("src", "request.php?d="+ dynamical_set_data_string); 没有办法由于 httponly 标志,将任何 cookie 信息附加到此 jQuery 调用。

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

在打印/打印预览期间是否有强制 IE 在请求未缓存图像时发送 cookie 的技巧?

最佳答案

经过研究,IE 似乎无法在打印时为未缓存的图像在请求 header 中发送 cookie 数据。为了解决这个问题,我使用 window.onbeforeprint 事件将 cache=true 参数添加到图像的 URL。在后端,我为要在短时间内缓存的图像设置 header 。虽然这不能解决问题(因为我不相信有真正的解决方法),但它确实绕过了问题,并且 IE 能够打印图像。

关于php - 打印时 IE 不重新发送 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11865880/

相关文章:

internet-explorer - 我们应该不再支持 IE6 了吗?

javascript - Angular 1.4.8 导致 ngOptions "group by"在 IE 11 中结果加倍

php - 使用 php 检查查询行数

php - 导致 PHP 在转换为 UTF-8 之前无法检测到正确的字符编码导致数据丢失的已知问题字符列表

javascript - 更改自定义选择选项的值 - Javascript

javascript - WordPress 编辑自定义 jquery 不起作用

javascript - Internet Explorer CSS 显示 block 问题

PHP JSON返回字符串问题

php - fatal error :无法访问 parent::when 当前类作用域中没有父级

javascript - 源代码中 CSS 段和 JS 函数放置顺序的权衡