Ответ json xhr открывает всплывающее окно файла загрузки
Для одного из наших запросов ajax (с ответом .json) некоторые из наших клиентов жаловались, что они видят приглашение "Загрузить файл", предлагая пользователю загрузить ответ .json. Я сбив с толку, потому что, учитывая, что это ответ xhr, этого никогда не должно произойти. Кто-нибудь видел это?
Спасибо
Ответы
Ответ 1
Для людей, которые используют ASP MVC и имеют одинаковую проблему с IE, используйте это при возврате ответа:
return Json(result, "text/plain");
Изменить: стандартный тип: "application/json", но не работает с IE. использование text/html опасно.
Ответ 2
попробуйте указать MIME-тип "text/plain" в ответе. или просто отбросить расширение ".json" из URL-адреса (например, попробовать .txt или .js)
Ответ 3
Не уверен, что вы нашли решение, но у меня была аналогичная проблема, когда IE пытался загрузить любые ответы JS. Чтобы исправить это, я должен был убедиться, что format.html отображается в формате format.js в блоке ответа:
def index
# ...
respond_to do |format|
# html must be above js, otherwise IE will try to download the JS
format.html
format.js
end
end
Надеюсь, что это поможет.
Ответ 4
Я использую загрузчик файлов QQ ajax, и я обнаружил, что мне нужно установить тип контента в text/json, чтобы он работал правильно.
Ответ 5
Отбросьте .json и установите тип содержимого как text/html. IE не знает, какой тип файла вы его отправляете, поэтому он предлагает загрузить. Он знает, что делать с текстом/html:)