Content-Type text/plain игнорируется в IE на основе расширения файла

У меня есть классическая страница ASP, которая устанавливает для ContentType значение "text/plain" и передает байты текстового файла в браузер. Однако Internet Explorer 7 (и, предположительно, другие версии) игнорирует это и вместо того, чтобы открывать проклятый текстовый документ моноширинным шрифтом, как это должно быть, выводит запрос «Хотите ли вы сохранить или открыть этот файл?» потому что это происходит с веб-страницы, оканчивающейся на «.asp».

Когда я устанавливаю файлы .txt для запуска через синтаксический анализатор ASP, а затем делаю копию моей страницы .asp с расширением .txt, все работает нормально.

Я изучил заголовки в Firebug на FF и знаю, что правильно устанавливаю тип содержимого и не пропускаю другие важные заголовки.

Есть ли какой-либо другой способ запретить IE использовать расширение файла для изменения ответа?

Это нонсенс! Уважай мой тип контента, ты, третьесортный браузер!


person ErikE    schedule 09.11.2010    source источник
comment
См. support.microsoft.com/kb/329661.   -  person BeemerGuy    schedule 09.11.2010
comment
@Beemer, я нашел эту статью, прежде чем задать свой вопрос, когда искал решение проблемы. Вы заметили, что это просто подтверждает, что у IE есть эта проблема? В статье не приводится никакого способа исправить это, кроме предоставления контента, который помогает IE сниффать контент, что невозможно с текстовым документом, у которого нет структуры. Так что эта ссылка - пустая трата времени.   -  person ErikE    schedule 09.11.2010


Ответы (1)


Попробуйте изменить имя файла (с расширением), используя заголовок размещения содержимого.

Что-то вроде Response.AddHeader("Content-Disposition", "inline;filename="File.txt") И вы уже сказали, что заголовок типа контента установлен правильно, так что это должно сработать.

person superfro    schedule 09.11.2010
comment
Забавно, я провел поиск по Content-Disposition, прежде чем задавать этот вопрос, и нашел очень тонкие варианты того, как его использовать. Большая часть контента в Интернете рассказывает, как вызвать диалоговое окно «Сохранить как», а не как его предотвратить. - person ErikE; 09.11.2010
comment
Ну, вы можете попробовать ietf.org/rfc/rfc1806.txt ... или support.microsoft.com/kb/260519 ... или что-то вроде asp101.com/samples/viewasp.asp?file=download_sample.asp .. .. в основном это заголовок, как и ваш тип контента, я все время использую расположение контента с php, чтобы делать такие вещи, как сохранение сгенерированных данных в файлы .csv или файлы журналов. - person superfro; 09.11.2010
comment
Это было идеальным решением проблемы. Спасибо. - person ErikE; 10.11.2010
comment
Знаете, что самое смешное? В конце концов я переключился на очень простую html-страницу с текстом внутри блока ‹pre›. Это позволило мне добавить на страницу некоторый javascript, чтобы предотвратить щелчок правой кнопкой мыши, выбор и копирование. - person ErikE; 10.11.2010