有没有简单的方法可以根据浏览器返回不同的内容类型?
当涉及到application / json时,我正在使用IE浏览器。大部分时间都有效,有时则没有。 我想总是返回json对象(通过MappingJacksonHttpMessageConverter),但在使用IE时将内容类型设置为text / plain。
写入response.setContentType是无效的因为我有很多控制器并且扩展转换器也没有多大帮助,因为我没有请求头..
任何想法?
答案 0 :(得分:2)
您可以尝试使用User-agent
从HTTP请求中获取@RequestHeader("User-Agent")
标头,然后将内容类型设置为HttpServletResponse
对象,该对象将由Spring框架自动设置。这是示例
@Controller
public class FoobarController {
@RequestMapping("/path")
@ResponseBody
public String getContent(@RequestHeader("User-Agent") String userAgent,
HttpServletResponse response) {
if (isIE(userAgent)) {
response.setContentType("text/plain");
} else {
response.setContentType("text/json");
}
...
return "{\"key\":\"value\"}";
}
}
这是IE的User-Agent标题的一部分,
您可以点击here查看详情。