需求在 系统中 调用 A项目(11.aa.com)的 JS 去请求B项目(22.aa.com)的方法,上传图片,且返回 JSON 显示图片:
JS代码如下
$.ajaxFileUpload({ url:'/uploadUserPic.html',secureuri:false,fileElementId:'userPic',dataType: 'json',data:{},success: function (data){ $("#userPicUrl").attr("src",data.url); $("#avatar").val(data.url); },error: function (data,status,e) { alert(e); } } );
处理代码:
@ResponseBody @RequestMapping(method = RequestMethod.POST,value = "/uploadUserPic.html") public String saveUserPic(HttpServletRequest request,@RequestParam(value = "userPic",required = true) MultipartFile file) throws Exception { unpackCookie(request); String fileName = null; String realPath = com.joytrav.Constant.FILE_REAL_PATH + com.joytrav.Constant.USER_UPLOAD_DIR; if (!file.isEmpty()) { String fileType = FileUtils.getFileType(file.getOriginalFilename()); String name = RandomUtils.getRandomFileName(); fileName = name + "." + fileType; byte[] bytes = file.getBytes(); String newFileName = realPath + File.separator + fileName; FileOutputStream fos = new FileOutputStream(newFileName); fos.write(bytes); // 写入文件 fos.close(); File newFile = new File(newFileName); if (newFile.isFile()) { String url = "https://"+LinkConfigHolder.get().getFileDomain()+"/" + USER_UPLOAD_URL + "/" + fileName; return "{'url':'" + url + "'}"; } } return null; }
如果是同顶级域名那么可以在B项目的Jsp中设置:
document.domain=obj.attr("aaa.com");即可,然后 如果设置了2遍就会导致不起作用,忘同行指点。
其中最好不要在input type="file"用 onchange,因为
.attr("src",data.url);会再次触发Onchange 方法 出现死循环。
下面即可:
window.onload=function(){ $("#photo1").on('change',function(){ uploadUserPicMore("photo1"); }) $("#photo2").on('change',function(){ uploadUserPicMore("photo2"); }) $("#photo3").on('change',function(){ uploadUserPicMore("photo3"); }) $("#photo4").on('change',function(){ uploadUserPicMore("photo4"); }); $("#userPic").on('change',function(){ uploadUserPicMore("userPic"); }); } function uploadUserPicMore(file){ var id=file; $("#loading").ajaxStart(function(){ $(this).show(); }).ajaxComplete(function(){ $(this).hide(); }); $.ajaxFileUpload( { url:'/uploadUserPic.html',fileElementId:id,success: function (data){ $("#"+id+"-img").attr("src",data.url); $("#"+id+"-val").val(data.url); },e){ alert(e); } } ); return false; }原文链接:https://www.f2er.com/ajax/164168.html