【问题标题】:how to force spring to return "text/html" instead of "application/json"?如何强制spring返回“text/html”而不是“application/json”?
【发布时间】:2012-07-16 20:16:40
【问题描述】:

我有一个文件附件插件 (AJAX File Upload plugin from Valums),它要求返回的 json 类型为“text/html”。我正在开发的 Web 应用程序使用 Spring Framework,它强制返回类型为“application/json”。我希望 json 以“text/html”的形式返回。由于返回的 json 是“application/json”类型,我得到一个文件下载对话框,这是用户不应该看到的(文件应该自动上传)。

@RequestMapping(value="attachmentUpload", method=RequestMethod.POST)
public @ResponseBody Map<String, String> attachmentUpload(
        @ModelAttribute("fileUploadFB") @Valid final FileUploadFormBean fileUploadFB,
        BindingResult result,
        SessionStatus sessionStatus,
        HttpServletResponse response) {

    final Map<String, String> resultMap = new HashMap<String, String>();

    resultMap.put("success", "true");

    // vain attempts to force text/html; do not work
    response.setContentType("text/html;charset=UTF-8");
    response.setHeader("Content-Type", "text/html");

    return resultMap;
}

如果有人有任何建议,将不胜感激!

【问题讨论】:

  • 传入的Accept标头内容是什么?
  • 我认为它是“text/html”...除非我遗漏了什么。这是我在控制器或插件中设置的吗?
  • 传入的请求会指定这个。
  • 我在哪里设置传入请求?我还在学习:)
  • @user1529955 在您的情况下,它可能是发出请求的浏览器/网页。

标签: json spring spring-mvc file-upload response


【解决方案1】:

我不再返回哈希映射;返回一个字符串以及将“produces="text/html"" 添加到 RequestMapping 作品中!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多