使用ajaxfileupload.js进行文件上传,后台正确执行,并返回了对应的响应值,但是前台进入error,返回值自动加上了<pre>标签
-
$.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
我也碰到过,是后台返回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));