ie8下面很多人遇到了无法上传文件的bug,具体来说,就是选择文件的弹窗无法弹出来,调试后,弹出来选中文件的框以后,确发现上传以后也没有成功提示,反而出现js错误。
经查是因为ajaxfileupload需要改进才能支持ie8下面的json解析。
具体是在ajaxfileupload的98行以后。
添加改动以下代码:
把:
var data = jQuery.uploadHttpData(xml, s.dataType);
改为如下:
// process the data (runs the xml through httpData regardless of callback)
if (!$.support.leadingWhitespace) { //ie6到ie8
// alert("ie6-8");
//var str = $(xml).text();
//alert(xml.responseText);
//var data = $.parseJSON(xml.responseText);
//alert(s.dataType);
var data = eval("data = " + xml.responseText);//jQuery.uploadHttpData(xml.responseText, s.dataType);
//alert(data);
// alert(data.success);
} else {
var data = jQuery.uploadHttpData(xml, s.dataType); //根据传送的type类型,返回json对象,此时返回的data就是后台操作后的返回结果
}
另外在上传处理的action中,要采用这样的方式返回header:
header("Content-Type: text/html");