Internet Explorer 8 отказывается загружать файл из всплывающего окна - PullRequest
0 голосов
/ 21 сентября 2011

Я создаю сайт. В одном месте есть кнопка, которая выполняет обратный вызов Ajax, а затем пытается загрузить файл через window.open(). Ожидаемое поведение - короткое мигание нового окна, а затем загрузка файла. Это хорошо работает на IE9, но IE8, похоже, имеет проблему с этим, даже с отключенным блокировщиком всплывающих окон.

После дальнейших экспериментов я обнаружил еще одно своеобразное поведение. Если я вручную ввожу URL-адрес загрузки в адресную строку только что открытой вкладки, я получаю сообщение об ошибке. Что-то общее о невозможности загрузки. Если я сейчас попытаюсь обновить страницу (или просто нажму клавишу ВВОД в адресной строке, повторяя тот же запрос), загрузка будет продолжаться.

Я ожидал, что это может иметь отношение к заголовкам content-disposition или cache-control, но удаление их не помогло. Также не было добавления URL в зону «доверенных сайтов».

Я все равно попытаюсь переделать его с window.location, потому что мне не нравится всплывающее окно (оно не было создано мной), но я озадачен этим поведением. Что вызывает это?

1 Ответ

0 голосов
/ 21 сентября 2011

Я столкнулся с подобной проблемой.Оказывается, в IE возникают проблемы с открытием файлов, когда вы используете AJAX для их получения.Решение, которое я использовал, состоит в том, чтобы не использовать ajax.Вместо этого я использовал немного jQuery и iframe:

jquery - on click (dont need ajax/get)

            var dynamicUrl = 'SomeFileService.aspx?someQueryParam=' + input;
            $('#iframePopup').attr('src', dynamicUrl);
            window.frames["#iframePopup"].location.reload();

HTML

<iframe id="iframePopup" style="visibility:hidden;height:0px;width:0px;"></iframe>
...