ajaxFileUpload 跨同顶级域访问问题

来源:互联网 发布:matlab 网络协议仿真 编辑:程序博客网 时间:2024/06/05 22:36

需求在 系统中 调用 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',secureuri:false,fileElementId:id,dataType: 'json',data:{},success: function (data){$("#"+id+"-img").attr("src",data.url);$("#"+id+"-val").val(data.url);},error: function (data, status, e){alert(e);}});return false;}


0 0
原创粉丝点击