使用ajaxfileupload.js进行文件上传,后台成功执行,前台却进入error

  1. 使用ajaxfileupload.js进行文件上传,后台正确执行,并返回了对应的响应值,但是前台进入error,返回值自动加上了<pre>标签

  2. $.ajaxFileUpload({

            url:"xxx", //用于文件上传的服务器端请求地址
            secureuri:false,//一般设置为false
            fileElementId:"", //文件上传空间的id属性
            type:"post",
            dataType:"text/html",
             success:function (responseText) {//服务器成功响应处理函数
                if(responseText=="error1"){
                    // func1();
                    return;
            }else if(responseText=="error2"){
                    // func2();
                    return;
            }else{
                    // func3();
                    return;
                                    }
            },error:function (responseText){
                alert(responseText);
                alert(responseText.responseText);
            }
    

浏览器截图

第一个alert
图片描述

第二个alert
图片描述

阅读 6.9k
1 个回答

我也碰到过,是后台返回json数据格式问题。
如果后台直接返回对象,某些浏览器会直接下载json文件或者进入error回调方法,我当初查了好像是因为ajaxfileupload 只支持ContentType("text/html");
参考:http://www.oschina.net/question/107380_151555

我的解决方法是:通过text文件字符串传输数据。
AJAX:$.ajaxFileUpload({ dataType: 'text' });
后台JAVA:
response.setContentType("text/html;charset=utf-8");
response.getWriter().write(JSON.toJSONString(result));

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏