Internet Explorer игнорирует расположение содержимого через HTTPS - PullRequest
1 голос
/ 17 февраля 2011

Я прикрепляю файл к ответу http, используя этот заголовок:

Content-Disposition: attachment; filename="example.doc"

Это работает отлично, если я не пытаюсь загрузить файл через HTTPS с помощью Internet Explorer. IE игнорирует заголовок Content-Disposition и просто пытается загрузить файл сценария на стороне сервера (классический ASP) и завершается неудачей.

Я пробовал все виды вариаций заголовков (в основном связанных с кэшем), но безуспешно.

Как я могу заставить IE распознать прикрепленный файл?

Редактировать: Запрос на загрузку отправляется путем установки атрибута src в iframe. Загрузки работают отлично, если не используется iframe.

Редактировать 2: Когда появляется диалоговое окно подтверждения загрузки, я могу нажать Открыть , чтобы открыть файл в IE, но сохранение файла не работает. Ошибка:

Невозможно загрузить download.asp с server.com .

Невозможно открыть этот интернет-сайт. Запрашиваемый сайт либо недоступен, либо не найден. Пожалуйста, попробуйте позже.

Ответы [ 3 ]

3 голосов
/ 18 февраля 2011

Вы устанавливаете ContentType?Попробуйте также установить Cache-Control.

Response.ContentType = "application/vnd.ms-word"
Response.AddHeader "Cache-Control", "max-age=0" 
2 голосов
/ 21 февраля 2011

Может быть, попробовать этот обходной путь?

<iframe src="page.html?var=xxx" id="theframe"></iframe>

<script>
var _theframe = document.getElementById("theframe");
_theframe.contentWindow.location.href = _theframe.src;
</script>
1 голос
/ 21 февраля 2011

Когда Internet Explorer обменивается данными с защищенным веб-сайтом через SSL, Internet Explorer обеспечивает выполнение любого запроса без кэширования.Если заголовок или заголовки присутствуют, Internet Explorer не кэширует файл.Следовательно, Office не может открыть файл.

Веб-сайты, которые хотят разрешить этот тип операции, должны удалять заголовок или заголовки без кэша.

...