为什么IE不在屏幕上显示操作结果
为什么IE不在屏幕上显示操作结果
在调试使用AJAX的jQuery应用程序时,我经常需要查看服务返回给浏览器的JSON数据。因此,我会将JSON数据的URL放入地址栏中。
这在ASPNET中很方便,因为在代码错误的情况下,我可以在浏览器中看到ASPNET的诊断信息:
但是当服务器端代码正常工作并实际返回JSON时,IE会提示我下载,因此我无法看到响应。
我能让IE不这样做吗,换句话说,只是将其显示为纯文本?
我知道如果将Content-Type标头设置为text/plain
,我可以做到这一点。
但这特指于ASPNET MVC应用程序的上下文,当我在其中的一个动作方法上使用JsonResult时,它会自动设置响应。此外,我也希望保持适当的内容类型,而不是仅为了支持调试而更改它。
为什么IE在屏幕上不显示动作结果?
IE8可以通过更新注册表来配置以在浏览器窗口中显示application/json。不需要外部工具。尽管我没有进行广泛测试,但在Vista上的IE8上可以使用。使用此方法时,请记住,关于更新注册表的所有常规注意事项都适用。停止IE。然后,将以下内容复制并粘贴到名为json-ie.reg的文件中。
Windows Registry Editor Version 5.00
;
; Tell IE to open JSON documents in the browser.
; 25336920-03F9-11cf-8FD0-00AA00686F13是“浏览中浏览”的CLSID。
;
[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。当触发返回Content-Type为application/json或text/json的URL时,您将获得以下新行为:
这是它的作用和原因:
25336920-03F9-11cf-8FD0-00AA00686F13是“浏览中浏览”的CLSID。基本上,此注册表条目告诉IE对于具有application/json MIME类型的文档,只需在原地查看它即可。这不会影响通过