• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    ueditor 上传图片跨域问题

      in  建站知识      Tags:  ueditor  跨域  

    ueditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量、可定制、用户体验优秀等特点。开源基于BSD协议,所有源代码在协议允许范围内可自由修改和使用。百度ueditor的推出,可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间,有效降低了企业的开发成本。



    一,ueditor自身是不支持跨域的,但是做一下简单的修改就可以实现


    客户端:a.com


    服务端:b.com


    二,在客户端a.com,修改


    1,修改ueditor.config.js


    查看复制打印?

    // , serverUrl: URL + "php/controller.php"  

     , serverUrl: "http://b.com/php/controller.php"  

    2,修改ueditor.all.js或者ueditor.min.js


    搜索edui_form_,在form表单里面加上以下


    查看复制打印?

    wrapper.innerHTML = '<form id="edui_form_' + timestrap + '" target="edui_iframe_' + timestrap +  

    '" method="POST" enctype="multipart/form-data" action="' + me.getOpt('serverUrl') + '" ' +  

    'style="' + btnStyle + '"><input type="hidden" name="issimpleupload" value="true" />' +  

    '<input id="edui_input_' + timestrap + '" type="file" accept="image/*" name="' + me.options.imageFieldName + '" ' +  

    'style="' + btnStyle + '">' +  

    '</form>' +  

    加上<input type="hidden" name="issimpleupload" value="true" />


    二,在服务端b.com,修改controller.php


    1,  顶部加上跨域


    查看复制打印?

    header("Access-Control-Allow-Origin:*");  

    header("Access-Control-Allow-Headers:X-Requested-With,X_Requested_With");  

    2,修改以下代码 


    查看复制打印?

    if (isset($_GET["callback"])) {  

     if (preg_match("/^[\w_]+$/", $_GET["callback"])) {  

     echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')';  

     } else {  

     echo json_encode(array(  

     'state'=> 'callback参数不合法'  

     ));  

     }  

    } else {  

     if(!emptyempty($_REQUEST['issimpleupload'])){  

     header("location:http://a.com/result.php?result=".urlencode($result));   //这步比较难以理解  

     exit;  

     }  

    }  

    在这里为什么要跳转回去呢?这是因为,ueditor是通过iframe,进行远程上传的,如果不跳转而是直接输出内容,这样ueditor获取不到iframe中的内容,因为跨域。所以要跳转回去,并把值回去,这样子ueditor就能获取到了。


    三,添加一个result.php


    查看复制打印?

    <?php  

      

    echo $_REQUEST['result'];  

      

    ?>  

    只要能输出值就行了。


    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开