Plupload 不适用于 Internet Explorer 8/9

Plupload not working with internet explorer 8/9

我正在使用 plupload 插件上传文件,服务器端我正在使用 Spring MVC。它适用于 IE 10+ 和 chrome,firefox,但不适用于 IE 8/9。在 IE 8/9 中,我收到 HTTP 错误 406。

下面是我的服务器端代码:

 @ResponseBody
 @RequestMapping(method = RequestMethod.POST, params="uploadFile")
 public MyJsonResponse uploadPoHardCopy(final HttpServletRequest request){
    MyJsonResponse jsonRespone = new MyJsonResponse();
    //
    //  populate jsonResponse
    //
    return jsonRespone; // return populated jsonResponse
}

javascript代码:

 FileUploaded: function(up, file, info) {
     var jResponse = info.response;
     var result = $.parseJSON(jResponse);


}

为了更正错误,我使用 Gson 将对象转换为 JSON,并将其作为字符串返回,如下所示:

@ResponseBody
@RequestMapping(method = RequestMethod.POST, params = "uploadFile")
public String uploadPoHardCopy(final HttpServletRequest request){
    MyJsonResponse jsonRespone = new MyJsonResponse();
    //
    //  populate jsonResponse
    //
    return new Gson().toJson(jsonRespone); // return populated jsonResponse
}

现在,它在 IE 8/9 上运行良好,但在其他浏览器上我需要解析响应 2 次才能获得 JSON 对象,如下所示。

FileUploaded: function(up, file, info) {
     var jResponse = info.response;
     var result = $.parseJSON(jResponse);
     result = $.parseJSON(result);

}

谁能提出更好的解决方案。

我使用 Fiddler 检查了 HTTP request/response 并观察到 ​​IE 8/9 正在发送 Headers - Accept:*/* 。当其他浏览器发送 Accept: application/json .

所以,我在 js 代码中添加了以下选项:

headers:{Accept : "application/json; charset=utf-8"},

并恢复了我为 IE 8/9 所做的早期更改,即将控制器代码更改为 return 字符串,并在 js 代码中更改响应 2 次

现在,它在所有浏览器上都能正常工作。