Загрузка Ajax не работает на IE9 / Chrome - PullRequest
0 голосов
/ 11 июня 2011

У меня есть стандартный скрипт загрузки файлов, использующий этот скрипт.Когда загрузка завершена, я отправляю обратно JSON, сообщая клиенту, что загрузка прошла нормально, что-то вроде этого:

{done: true, error: "No error"}

Когда я делаю загрузку в Firefox, все работает гладко, но в IE9 /Хром это ломает.IE говорит мне, что мне нужно скачать файл, что-то вроде этого изображения:

IE9's download dialog

Я думал, что проблема заключалась в заголовках, представленных клиенту, и я попытался установить тип содержимогоto:

  • application / javascript
  • text / javascript

Файлы сохранены правильно, и ответ возвращается без каких-либо повреждений, ни вкодировка, или GZIP или что-нибудь подобное.

Есть идеи?

РЕДАКТИРОВАТЬ: Забыли добавить ссылку на "this" а также, это старая версия плагина, а не текущая.

Ответы [ 2 ]

3 голосов
/ 14 июня 2011

Я отвечу на вопрос сам, потому что нашел решение, по крайней мере, оно работает ...

Дело в том, что при отправке запроса с использованием iframe, кажется, что тип содержимого ответане должно быть ни application/json, ни application/javascript, ни каким-либо другим подобным.Мое решение состояло в том, чтобы отправить ответ как text/html и сделать JSON.parse на клиенте, и это работает как чудо.

Поскольку все мои вызовы Ajax указывают, что я ожидаю JSON, этоработает хорошо, когда я также выполняю ajax-вызовы, потому что jQuery обрабатывает все преобразования, единственное, что меня беспокоит, это любая проблема, связанная с производительностью на клиенте, но я пока не вижу никаких признаков проблемы ...

Надеюсь, что любой, кто сталкивается с проблемой, может найти мой ответ полезным!

1 голос
/ 11 июня 2011

В прошлом у меня была эта проблема с тем же виджетом загрузки и IE 8.

header('Content-Type: application/json') исправили это для меняТы это тоже пробовал?

...