jquery之ajaxfileupload异步跨域上传

时间:2022-08-29 12:19:14
我的问题是:文件能正常上传,但是前台拿不到文件上传的路径?总是进入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);
  }

8 个解决方案

#1


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

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

不能就无解了,只能输出alert语句提示是否能上传功能

#2


谢谢楼上提供的资料
我看的是云里雾里的
一头雾水,没看懂

#3


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

#4


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


我还是不太懂,我QQ:258218664

#5


引用 4 楼 qiqundelang 的回复:
Quote: 引用 3 楼 zsmj_820_09 的回复:

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


我还是不太懂,我QQ:258218664


那就悲剧了,公司把网禁了,只有这种方式能交流了,你把错误贴google里搜索下,很多解决方法的。ftp这种上传方式你就别试了,需要一个ftp服务器的。

#6


先了解一下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不受你控制,则无解

#7


那意思就没法做了是不?

#8


引用 7 楼 qiqundelang 的回复:
那意思就没法做了是不?


都和你说了ajaxfileupload用的是iframe,安全问题不允许跨域,除非你能控制跨域的那个网站,然后按照1#介绍的方法来实现跨域内容更新

如果是跨2级域名而不是*域名,2个网站的页面设置document.domain='*域名',这样就能互相操作

#1


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

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

不能就无解了,只能输出alert语句提示是否能上传功能

#2


谢谢楼上提供的资料
我看的是云里雾里的
一头雾水,没看懂

#3


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

#4


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


我还是不太懂,我QQ:258218664

#5


引用 4 楼 qiqundelang 的回复:
Quote: 引用 3 楼 zsmj_820_09 的回复:

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


我还是不太懂,我QQ:258218664


那就悲剧了,公司把网禁了,只有这种方式能交流了,你把错误贴google里搜索下,很多解决方法的。ftp这种上传方式你就别试了,需要一个ftp服务器的。

#6


先了解一下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不受你控制,则无解

#7


那意思就没法做了是不?

#8


引用 7 楼 qiqundelang 的回复:
那意思就没法做了是不?


都和你说了ajaxfileupload用的是iframe,安全问题不允许跨域,除非你能控制跨域的那个网站,然后按照1#介绍的方法来实现跨域内容更新

如果是跨2级域名而不是*域名,2个网站的页面设置document.domain='*域名',这样就能互相操作