Javascript 基于浏览器设置内容类型

Javascript 基于浏览器设置内容类型,javascript,jquery,json,asp.net-mvc-3,internet-explorer-9,Javascript,Jquery,Json,Asp.net Mvc 3,Internet Explorer 9,我正在使用asp.net mvc 3并将json返回给用户。我是这样做的: return Json(results, JsonRequestBehavior.AllowGet) 结果只是我创建的一个简单的ViewModelC#类。这在FF和chrome中运行良好,但IE 9要求打开或保存结果。无论我在哪里看到,人们都说“修复”是这样做的: return Json(results, "text/html", JsonRequestBehavior.AllowGet) 这在IE中确实适用,但

我正在使用asp.net mvc 3并将json返回给用户。我是这样做的:

return Json(results, JsonRequestBehavior.AllowGet)  
结果只是我创建的一个简单的ViewModelC#类。这在FF和chrome中运行良好,但IE 9要求打开或保存结果。无论我在哪里看到,人们都说“修复”是这样做的:

return Json(results, "text/html", JsonRequestBehavior.AllowGet)

这在IE中确实适用,但在chrome和/或firefox中不适用。它对某些版本有效,但并非所有版本都有效。我想知道如果浏览器是IE,是否可以返回text/html,否则返回正常的JSON。还是有更好的解决方案?提前谢谢

我假设您正在进行AJAX调用,如果是这样的话,那么您的解决方案就是让所有浏览器将返回值作为HTML处理的正确方法,这是一个比以不同方式处理每个浏览器要好得多的解决方案

但是,为了能够处理返回的值,您需要将返回的html解析为JSON

在AJAX调用的成功回调中,只需添加以下内容:

var jsonResponse = $.parseJSON(response);

您的意思是希望用户通过导航到您的url来查看浏览器中显示的实际JSON吗?(与通过Ajax调用或其他方式使用它相比?)