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
- ajaxFileUpload 跨同顶级域访问问题
- ajaxfileupload IE10 拒绝访问
- 同域下iframe操作时,js访问document出现"拒绝访问"的问题原因
- ajaxFileUpload遇到的问题
- AjaxFileUpload的问题
- ajaxfileupload上传文件跨域实战解决
- 不同域下的cookie不共享,必须在同个顶级域下设置cookie
- 简单解决不同机器同帐号文件访问问题
- 跨域访问问题
- 解决同域Nginx ajax 请求跨域的问题
- jquery.ajaxfileupload.js 问题汇总
- 同的访问类型
- AjaxFileUpload
- ajaxfileupload
- ajaxfileupload
- ajaxfileupload
- ajaxFileUpload
- 解决apache服务器本地可以访问,同局域网内他人不能访问的问题(转)
- PBOC2.0安全系列之—脱机认证之静态数据认证(SDA)
- Java FlowLayout、BorderLayout、GridLayout、GridBagLayout、CardLayout布局管理器
- android.os.handler相关知识整理
- smarty的应用
- GPU线程运行机制
- ajaxFileUpload 跨同顶级域访问问题
- window下创建软连接
- solrcloud/solr error
- ecshop分析 php和dwt文件之间的参数传递【转载于源代码网】
- Android学习笔记之AndroidManifest.xml文件解析
- 安卓菜鸟,努力!
- 1011. World Cup Betting (20)
- 第十一周项目4 特殊的三位数
- 实现微信浏览器内打开App Store链接