日期:2014-05-16  浏览次数:21013 次

jquery之ajaxfileupload异步跨域上传
我的问题是:文件能正常上传,但是前台拿不到文件上传的路径?总是进入ERROR
 url:'http://192.168.1.67:8080/upload/fileConfig.do?method=upload',   secureuri:false,
  data:{'uploadObj':$('#uploadObj').vaL(),'previewObj':$('#previewObj').val(),'sizeLimit':$('#sizeLimit').val(),'allowedType':$('#allowedType').val(),'uploadType':$('#uploadType').val()},
  fileElementId:'qqfile',//input框的ID
  dataType: 'json',//返回数据类型
  success: function (data, status){//上传成功
      //从data中获取数据,进行处理
      alert("11111111");
  },error: function (data, status, e){
  alert("333333");
  alert(e);
  }

------解决方案--------------------
ajaxfileupload使用iframe来模拟无刷新上传的,表单提交到iframe中,js无法获取跨域的iframe的内容,所以能上传,无法获取iframe中最后加载的内容

如果你能控制跨域的上传页面,可以参考这篇文章:javascript通过iframe加载同源代理页面实现顶级域跨域操作

不能就无解了,只能输出alert语句提示是否能上传功能
------解决方案--------------------
骚年,要添加个ajaxFileUpload里面的方法,网上有的,我刚做过,要加一个异常处理的方法,不然老是会报错,而且不能上传大于1个G的文件,用tomcat的话,会先把文件上传到临时文件夹内,然后报内存溢出,我没解决的了,就换了个ftp的方法上传了;
------解决方案--------------------
引用:
Quote: 引用:

骚年,要添加个ajaxFileUpload里面的方法,网上有的,我刚做过,要加一个异常处理的方法,不然老是会报错,而且不能上传大于1个G的文件,用tomcat的话,会先把文件上传到临时文件夹内,然后报内存溢出,我没解决的了,就换了个ftp的方法上传了;


我还是不太懂,我QQ:258218664


那就悲剧了,公司把网禁了,只有这种方式能交流了,你把错误贴google里搜索下,很多解决方法的。ftp这种上传方式你就别试了,需要一个ftp服务器的。
------解决方案--------------------
先了解一下ajax文件上传原理,参见
http://blog.csdn.net/wzs_xyz/article/details/9763861
服务端把响应放到了iframe中,
而跨域情况下主页面无权访问iframe中内容,所以会报错;
你可以让站点http://192.168.1.67:8080提供一个跨域访问的方式比如响应中iframe加载一个你的页面来传递参数;需要对前端有较深理解才能处理好
若站点http://192.168.1.67:8080不受你控制,则无解