我有一个使用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。
我编写了一个示例应用程序,显示了我可以发布的行为。
谢谢。
答案 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