java 跨域上传总结

时间:2022-08-29 08:37:31

做跨域上传用了好几个工作日的时间。想总结一下自己的心得。


1、ajaxFileUplad 异步上传,本来是用下面的代码来做的异步上传,发现能上传到服务器,但是返回值一直进入error 方法。从网上于是查了些资料有些网友说把dataType 的类型从json 改成jsonp的方式。也试过可是一无所获。还是servlet 返回过来的图片地址js接收不到。

接收不到服务端返回过来的参数信息。

下面这段代码是不支持跨域上传的。

$.ajaxFileUpload({
headers : {
'Content-Type' : 'multipart/form-data'
},
url : 'http://localhost:8080/YiDbFileServlet/upload',// servlet请求路径
secureuri : false,
fileElementId : "file-1",// 上传控件的id
dataType : 'json',
//上传的参数
/* data : {
tokenKey : "1862be57edcc558dbda22696507f4b37.101.500",
m : "doctorLicense"
}, */
success : function(data, status, e) {
alert(data.data + "..........");
},
error : function(data, status, e) {
alert('上传出错');
}
})






于是查ajaxFileUplad API文档,我彻底放弃了用ajaxFileUpload 来做跨域上传,发现dataType 的类型中不支持jsonp的上传方式。

于是放弃了ajaxFileUplad 的上传方式。

java 跨域上传总结



2、我另辟蹊径,找到了jQuery-File-Upload  这个框架。这个框架的API文档上称可以支持跨域。

于是我找了很多资料,看别人写的代码,看的很蒙,于是我决定硬着头皮看英文的jQuery-File-Upload  文档。找这个框架的Demo.

功夫不负有心人,我运行起来了jQuery-File-Upload 这个框架。具体详解可见附件的jQuery-File-Upload 这个例子。在官网的例子上做了些调整。

3、研究jQuery-File-Upload 框架。

下面是官网的API文档的Demo演示。

https://blueimp.github.io/jQuery-File-Upload/

API文档讲解

跨域上传的文档说明

https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads

跨域上传的例子下载路径

https://github.com/blueimp/jQuery-File-Upload/wiki

这个链接下有很多种语言的例子,可供下载

java 语言下载Upload Servlet excercise (user contribution).

java 跨域上传总结