带有文件上传的Extjs / Spring MVC返回Content-Type application / x-ms-application而不是IE8的text / html

时间:2012-06-28 16:12:33

标签: spring-mvc extjs

我有一个使用Spring MVC(3.0.2)的Extjs(4.1)应用程序。在其中一个表单上我有一个文件字段。在IE8中提交表单时,不会触发成功/失败回调。该应用程序在FF,Chrome和IE9中正常运行。我今天注意到,IE8中的响应Content-Type等于application / x-ms-application。对于IE9,它是text / html。我从Spring Controller返回json。

这是一个已知问题还是我需要设置一个Spring配置选项?我是Spring的新手。以下是Sencha论坛上同一问题的链接:extjs 4.1 forum。我很感激任何帮助,因为我的客户需要使用IE8。

我编写了一个示例应用程序,显示了我可以发布的行为。

谢谢。

2 个答案:

答案 0 :(得分:1)

你是对的。我更新了我的Spring MVC Controller类,以显式返回Content-Type的“text / html”

原始代码:

    public @ResponseBody String importData(@RequestParam String groupName, @RequestParam String processType,
                @RequestParam CommonsMultipartFile spreadsheet) throws Exception
{

.
.
.
     return "{success:true}";
}

更新代码:

    public void importData(@RequestParam String groupName, 
                @RequestParam String processType,
                FileUploadBean uploadItem, 
                BindingResult result, 
                HttpServletResponse response) throws Exception
{
.
.
.
            // return data
            response.setContentType("text/html");
            response.getWriter().write("{success:true}");
            response.flushBuffer();
            return;
        }

答案 1 :(得分:0)

您需要做的是在Spring控制器中明确设置响应内容类型。有点像: response.setContentType(“text / html”)

请参阅此文档以获取解释:(关于隐藏的IFrame的内容:)) http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.Basic-method-hasUpload