Как я могу убедить IE просто отображать application/json, а не предложение загрузить его?

При отладке приложений jQuery, которые используют Ajax, у меня часто есть потребность видеть json, который возвращается сервисом к браузеру. Таким образом, я отброшу URL для данных JSON в строку поиска.

Это любезно с ASPNET, потому что в случае ошибки кодирования, я вижу ASPNET diagostic в браузере:

alt text

Но когда серверный код работает правильно и на самом деле возвращает JSON, IE предлагает мне загружать его, таким образом, я не вижу ответ.

alt text

Я могу заставить IE НЕ делать это, другими словами, просто отображать его, как будто это был простой текст?

Я знаю, что мог сделать это, если бы я установил заголовок Типа контента, чтобы быть text/plain.

Но это - конкретно контекст приложения ASPNET MVC, которое устанавливает ответ автоволшебно, когда я использую JsonResult на одном из моих методов действия. Также я отчасти хочу сохранить соответствующий тип контента и не изменить его только для поддержки отладки усилий.

161
задан Cheeso 3 April 2017 в 18:03
поделиться

4 ответа

Я нашел отвечать.

Вы можете настроить IE8 для отображения application / json в окне браузера, обновив реестр. Нет необходимости во внешнем инструменте. Я не тестировал это широко, но он работает с IE8 в Vista.

Чтобы использовать это, помните, что применяются все обычные предостережения об обновлении реестра. Остановите IE. Затем вырежьте и вставьте следующее в файл с именем json-ie.reg .

Windows Registry Editor Version 5.00
;
; Tell IE to open JSON documents in the browser.  
; 25336920-03F9-11cf-8FD0-00AA00686F13 is the CLSID for the "Browse in place" .
;  

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\text/json]
"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"
"Encoding"=hex:08,00,00,00

Затем дважды щелкните файл .reg. Перезагрузите IE. Новое поведение, которое вы получаете, щелкая URL-адрес, который возвращает документ с Content-Type: application / json или Content-Type: text / json , выглядит следующим образом:

alt text

Что это работает, почему это работает:

25336920-03F9-11cf-8FD0-00AA00686F13 - это CLSID для действия «Просмотр на месте». По сути, эта запись в реестре сообщает IE, что для документов с mime-типом application / json просто просмотрите его на месте. Это не повлияет на документы приложения / json, загруженные через теги