ajaxfileupload.min.js
解决了版本问题,仍然 提示上传错误我的代码是这样的$.ajaxFileUpload({ url: '/aj/uploadphone', secureuri: false, fileElementId: 'up_file', dataType: 'json', type: 'post', beforeSend: function() { $('#up1').html('上传中...'); }, success: function(res) { console.log(res.msg); }, error: function(res) { alert('上传失败'); } }); 于是我去调试 ajaxfileupload.min.js 中的代码,发现这句报错了 jQuery(form).submit(); 错误提示是: 拒绝访问 怎么会拒绝访问那?原来表单中存在file是,必须通过手动触发点击file控件的浏览时一切操作,通过别的控件来触发file的点击事件时就会出现拒绝访问的提示,这是ie处于安全性 的限制。因为自带的 非常难看,我就把它隐藏了,而用一个按钮的点击事件 触发 他的点击事件, 在低版本的IE中是不允许的
于是我想到了美化 幸好网上有这回上传成功了 json 也返回了,
可返回json数据在IE浏览器中提示下载,原因是 返回数据时的http头,content-type: application/json而低版本的ie不认识这种头,所有不认识的,ie都提示下载保存,实了好几种头,和查了一些资料 发现低于IE10版本一下的IE浏览器都需要使用text/html格式的Response
最终解决js: $.ajaxFileUpload({ url: '/aj/uploadphone', secureuri: false, fileElementId: 'up_file', dataType: 'text', //ie低版本不支持json type: 'post', beforeSend: function() { $('#up1').html('上传中...'); }, success: function(res) { res = eval('('+res+')'); //转为json对象 console.log(res.msg); $('#mytextarea').val(filter_tels(res.msg)); }, error: function(res) { alert('上传失败'); console.log(res, 'sss'); } }); php 服务端:直接 echo json_encode($data);