【问题标题】:Set content type based on browser根据浏览器设置内容类型
【发布时间】:2013-12-03 21:17:31
【问题描述】:

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

return Json(results, JsonRequestBehavior.AllowGet)  

results 只是我创建的一个简单的 viewmodel c# 类。这在 FF 和 chrome 中运行良好,但随后 IE 9 要求打开或保存结果。我所看到的任何地方,人们都说“修复”是做这样的事情:

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

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

【问题讨论】:

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

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


【解决方案1】:

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

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

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

var jsonResponse = $.parseJSON(response);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2010-11-16
    • 2013-03-21
    • 2011-10-29
    • 1970-01-01
    • 2019-07-08
    相关资源
    最近更新 更多