Подтвердить что ты не робот

IE не пересылает файлы cookie при печати

У меня есть изображение, сделанное на лету страницей PHP request.php. Это изображение нельзя кэшировать из-за характера содержащихся в нем данных. Изображение, отображаемое request.php, зависит от файлов cookie пользователя. Когда я перехожу к печати из IE8 и IE9, эти файлы cookie не отправляются в заголовках запроса при попытке загрузить изображение, возвращенное request.php. Я определил это, используя Fiddler и контрольные заголовки запроса/ответа.

Моя первая идея состояла в том, чтобы просто поместить информацию о файлах cookie в URL-адрес request.php, но есть проблема с этим. Установленные мной файлы cookie создаются с установленным флагом httponly (по соображениям безопасности). Другими словами, я не могу получить доступ к этому файлу cookie с помощью script. Я использую jQuery, чтобы установить источник изображения, используя что-то вроде $("#myimage").attr("src", "request.php?d=" + dynamically_set_data_string); Невозможно добавить какую-либо информацию cookie к этому вызову jQuery из-за флага httponly.

Я не могу использовать base64, чтобы содержать данные изображения непосредственно в атрибуте src, потому что изображения слишком велики (IE8 имеет ограничение на 32 КБ).

Есть ли уловка, чтобы заставить IE отправлять файлы cookie в запросы на нераскрытые изображения, сделанные во время печати/предварительного просмотра?

4b9b3361

Ответ 1

После проведения исследования кажется, что IE не может отправлять файлы cookie в заголовки запросов для нераскрытых изображений при печати. Чтобы обойти это, я использую событие window.onbeforeprint для добавления параметра cache=true в свой URL-адрес изображения. На бэкэнд я установил заголовки для того, чтобы изображение было кэшировано в течение короткого периода времени. Хотя это не устраняет проблему (потому что я не верю, что есть истинное исправление), она обошла проблему, и IE может печатать изображение.