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 次
现在,它在所有浏览器上都能正常工作。
我正在使用 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 次
现在,它在所有浏览器上都能正常工作。