1

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

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

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

谢谢你。

4

2 回答 2

1

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

原始代码:

    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;
        }
于 2012-06-29T18:35:50.590 回答
0

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

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

于 2012-06-28T20:57:18.827 回答