Я сталкиваюсь с очень странной ошибкой в Firefox и Chrome. Ошибка не возникает в Safari. Я отображаю PDF на странице со следующим кодом (работает нормально):
header('Content-Length: ' . filesize($pdfPath));
header('Content-Type: application/pdf');
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: inline; filename="' . $pdfId . '.pdf"');
readfile($pdfPath);
PDF прекрасно загружается, но когда я нажимаю кнопку «Назад» в браузере (Firefox и Chrome), на странице, к которой я возвращаюсь, заголовок HTTP включается в тег body.
HTTP/1.1 200 OK Date: Tue, 08 Mar 2011 00:18:47 GMT Server: Apache/2.0.63 (Unix) PHP/5.2.13 DAV/2 mod_ssl/2.0.63 OpenSSL/0.9.7l X-Powered-By: PHP/5.2.13 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Length: 7010 Keep-Alive: timeout=15, max=92 Connection: Keep-Alive Content-Type: text/html
Этот заголовок предназначен для текущей страницы (а не страницы, на которой отображен PDF). При отладке я распечатал тег body со следующим кодом jQuery:
console.log($('body').html());
Заголовок появляется перед любым другим содержимым в теле. Любые идеи относительно того, что могло вызвать появление этого мошеннического заголовка?