项目中有个上传图片需要实时预览的,但又是两个系统的访问,故想了一下解决方案:
在新系统中上传图片后处理设置session,旧系统跨域访问获取对应session,进行对应模板预览。
上传图片预览按钮对应按钮js:
$(".h_picSee").click(function(){ var elem = $(this).parents(".h_contentLi"); var flag = 0; $(".h_picPic").find("input").each(function(i){ if($(this).val().trim()!==""){ flag = 1; }; }); if(flag == 0) { art.dialog.alert('您还未上传任何网站模板图片,请先上传!'); return false; } var newTab=window.open('about:blank'); $.ajax({ type: 'POST', url: '/user/bmtong/sitePreview', dataType: 'json', data: $('.picForm').serialize(), success: function (result) { if (result.errorcode) { art.dialog.alert(result.errormsg); }else{ newTab.location.href = result.data; } }, error: function () { art.dialog({ content: '<span style="line-height:20px;">网络连接失败</span>', lock:true, okVal: '确定', ok: true }); } }); return false; });
2、新系统程序处理
public function sitePreview() { if(IClient::isAjax() == false) { Util::returnJsonMessage('非法操作', 1); } $arr = $_REQUEST; foreach ($arr as $k=>$v){ if($k=="PHPSESSID" || $k=="mid" || strpos($k,'Hm_') !== false){ unset($arr[$k]); }else{ ISafe::clear($k); ISafe::set($k, $v); } } $url = www.****.com/site_preview.htm"; Util::returnJsonMessage('', 0,$url); }
3.旧系统获取session,显示页面