php jsonp跨域访问

项目中有个上传图片需要实时预览的,但又是两个系统的访问,故想了一下解决方案:

在新系统中上传图片后处理设置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,显示页面

原文地址:https://www.cnblogs.com/Dong-Ge/p/6708058.html