IE9 JSON Data “вы хотите открыть или сохранить этот файл”

Началось тестирование моих приложений jQuery с помощью IE9. Похоже, у меня могут быть какие-то проблемы. Я заметил, что когда я возвращаю данные JSON обратно в методы Javascript, я всегда получаю эту подсказку, которая гласит: «Вы хотите открыть или сохранить этот файл?» и предоставляет мне 3 кнопки: Открыть, Сохранить и Отменить. Конечно, мой javascript предпринимает действия на основе значений, установленных в объекте JSON, но поскольку IE9 не передает его сценарию, я не могу выполнить последующее действие оттуда.

Кто-нибудь еще сталкивается с этой проблемой? Вот снимок. введите описание изображения здесь

Если кто-то использует ASP.net MVC и пытается исправить эту проблему, я использовал следующие встроенные методы в среде MVC . Просто обновите содержимое Type и encoding на JsonResult .

public ActionResult Index(int id) { // Fetch some data var someData = GetSomeData(); // Return and update content type and encoding return Json(someData, "text/html", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet); } 

Это исправило проблему для меня!

(Ответ был первоначально отправлен для этого вопроса .)

При использовании MVC одним из способов обработки этого является реализация базового controllerа, в котором вы переопределяете (скрываете) метод Json (object) следующим образом:

 public class ExtendedController : Controller { protected new JsonResult Json(object data) { if (!Request.AcceptTypes.Contains("application/json")) return base.Json(data, "text/plain"); else return base.Json(data); } } 

Теперь ваши controllerы могут наследовать ExtendedController и просто вызвать return Json(model);

  • без изменения типа содержимого ответа для тех браузеров, которые играют хорошо (не <= IE9!)
  • без необходимости использовать Json(data, "text/plain") в ваших различных методах действий Ajax

Это работает с запросами json, которые в противном случае отображали сообщение «Открыть или Сохранить» в IE8 и IE9, например, сделанные с помощью загрузки файла jQuery

Вчера я столкнулся с этой проблемой с помощью WebAPI, который вернул список URL-адресов (асинхронно загруженных файлов).

Просто установите тип контента в «text / html» вместо стандартного «application / json; charset = UTF-8» служб WebAPI. Я получил ответ как строку JSON, а затем использовал $ .parseJSON, чтобы преобразовать его в объект JSON.

 public async Task Upload() { // ... var response = Request.CreateResponse(HttpStatusCode.OK, files); response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); return response; } // result is an iframe's body content that received response. $.each($.parseJSON(result.html()), function (i, item) { console.log(item.Url); }); 

В моем случае, когда contentType в заголовке ответа является «application / json; charset = UTF-8», IE 9 показывает, что запрашивать. Но изменилось на «text / html», тогда подсказка не отобразится, хотя все браузеры otter в порядке с «application / json; charset = UTF-8».

На самом деле, вы были правы @ EricLaw. После настройки типа контента в результате Json это сработало. Мне пришлось добавить следующие строки:

  result.ContentEncoding = System.Text.Encoding.UTF8; result.ContentType = "application/json; charset=UTF-8 
  • Как настроить сериализацию списка объектов JAXB для JSON?
  • Как включить междоменный запрос на сервере?
  • Использование пользовательской десериализации тела WCF без изменения десериализации шаблона URI
  • Лучший способ вызова JSON WebService из .NET Console
  • Отправка и анализ объектов JSON в Android
  • Как разобрать JSON с VBA без внешних библиотек?
  • Как разобрать этот вложенный массив JSON в android
  • Как отправить JSON на сервер?
  • Как декодировать вложенную структуру JSON с протоколом Swift Decodable?
  • Как получить строку json из url?
  • преобразование из строки в json object android
  • Interesting Posts

    Как восстановить документ Microsoft Word

    установить выравнивание текста в центре в spinner в android

    Практическое руководство. Добавление удаленных мест в индекс поиска Windows из командной строки?

    Используйте раскрывающееся меню Bootstrap 3 в качестве контекстного меню

    jquery save json объект данных в cookie

    Как я могу узнать, какое приложение крадет фокус в Vista?

    Как включить поддержку C ++ 11 / C ++ 0x в Eclipse CDT?

    800A0401 – Ожидаемый конец заявления

    Каков наилучший способ добавить кнопку?

    Автоматическая компоновка: получить высоту UIImageView, чтобы правильно вычислить высоту ячейки

    Используют ли веб-браузер разные исходящие порты для разных вкладок?

    Как избавиться от раздражающих и быстро исчезающих всплывающих окон брандмауэров на Mac

    Размер файла ОС ОС Windows 8 меньше?

    Как долго будет проходить memtest86 в этих случаях. И будет ли это когда-нибудь бесконечно?

    Можно ли запустить материнскую плату в дистиллированной воде?

    Давайте будем гением компьютера.