使用 ajaxFileUpload 插件上传图片的时候,在 UC 浏览器下会出现问题:
图片上传成功了,能返回生产的图片 URL,但是却执行 error 报错,为什么呢?
$.ajaxFileUpload({
url:'/group_action/upload_image',
secureuri:false,
fileElementId:'pub_upload_img',
dataType: 'json',
success: function (d){
if(d.result == 1){
alert(d.url);
}else{
alert(d.msg);
}
},
error: function(data, status, e){
alert(data.responseText);
}
});
可能是你上传的图片太大了,超时了吧,你把超时时间设置长点试试~
我也遇到这个问题了,但是断点总是先跑到error中,然后进success,在success里返回的data为空,但是网络中返回的有值,求大神助攻
alert(d)看看,你确定是json返回结果吗?
参考我的:
<script>
$(document).ready(function(){
$('#test').click(function(){
$.ajaxFileUpload({
url:'{:U("Index/upload")}',
secureuri: false,
fileElementId:'file',
dataType: 'text',//返回数据类型
success: function (data, status){
//alert(data);
$("#img").attr("src","http://127.0.0.1/6/0604/Uploads/2015-06-06/"+data);
},
error: function (data, status, e)//服务器响应失败处理函数
{
alert(e);
}
});
//$('#upload').submit();
});
});
</script>
http://my.oschina.net/rain21/blog/425565
朋友,我也遇到了这个问题,用了一天时间最终解决了,都是uc浏览器坑的,返回的json里面多了一段uc的js,现付解决方法,希望能帮到你:
if (type == "json"){
***var position = data.indexOf('}')+1;
data = data.substring(0,position);***
eval("data = " + data);
}
加粗的那两句放进相应的ajaxfileupload.js文件中就行了,就是截取了有效的json,保证是合法的json字符串
检查后端返回的数据是什么。