«Content-Type: текст / обычный» принудительно загружает файл

#php #google-chrome #http-headers #mime-types #content-type

#php #google-chrome #http-заголовки #mime-типы #content-type

Вопрос:

Если я вызову header('Content-Type:text/plain; charset=ISO-8859-15'); браузер, он загрузит файл вместо того, чтобы показывать его. text/html Вместо этого работает использование. (загруженный файл обрабатывается в любом случае, он не загружает исходный код)

Я пытался добавить header('Content-Disposition:inline;'); , но это было просто проигнорировано.

Я довольно невежественен в том, что может вызвать эту проблему, какой-нибудь совет?

Сервер — MAMP 1.9.6 (PHP 5.3.5, Apache / 2.0.64).

редактировать: это происходит только в Chrome, оно работает в Firefox, Camino и Safari.

Комментарии:

1. Что это за браузер? Я почти уверен, что IE запрашивает загрузку, когда он сталкивается с чем-либо, кроме image/* and text/html . Вот почему файлы javascript / css загружаются, а не отображаются.

2. Это странно, никогда не видел этого (также не могу воспроизвести) : (

3. @rudi_visser: вы на правильном пути: он работает в Firefox, Camino и Safari. Похоже, это ошибка Chrome. Если кто-нибудь знает обходной путь, я попробую, иначе я просто вернусь к тексту / html :/

Ответ №1:

Я не могу воспроизвести это с помощью этого скрипта:

 <?php

  header('Content-Type:text/plain; charset=ISO-8859-15');
  echo "This is some text";
  

Однако я могу воспроизвести его с помощью этого:

 <?php

  header('Content-Type:text/plain; charset=ISO-8859-15');
  echo "x00This is some text";
  

Убедитесь, что ваш контент на самом деле представляет собой обычный текст ASCII…

Комментарии:

1. Я думаю, это все. Я предположил, что браузер все равно попытался бы отобразить его, даже если бы там были управляющие символы. Похоже, я ошибся.

Ответ №2:

Для меня это работает:

 header('Content-Type:text/javascript;');