根据浏览器设置内容类型

时间:2013-11-20 02:59:07

标签: javascript jquery json asp.net-mvc-3 internet-explorer-9

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

return Json(results, JsonRequestBehavior.AllowGet)  

结果只是我创建的一个简单的viewmodel c#类。这在FF和chrome中工作正常,但随后IE 9要求打开或保存结果。我看到的每个地方,人们都说“修复”就是这样做:

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

这在IE中对我有用,但它在chrome和/或firefox中不起作用。它适用于某些版本,但不是全部版本。我想知道如果浏览器是IE,是否可以返回text / html,否则返回正常的JSON。或者有更好的解决方案吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

我假设您正在进行AJAX调用,如果是这样,您所拥有的解决方案是使所有浏览器将返回值视为HTML的正确方法,这是一种比以不同方式处理每个浏览器更好的解决方案

但是,为了能够使用返回的值,您需要将返回的html解析为JSON。

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

var jsonResponse = $.parseJSON(response);