预设环境
UEditor 版本: 1.4 客户端地址: https://www.aaa.com 图片服务器地址: https://www.bbb.com 图片服务器端 UEditor 的部署 URL:https://www.bbb.com/ueditor/ 客户端和图片服务器各部署一套 UEditor 环境
客户端修改
修改 1:/ueditor/ueditor.config.js
将原有的 URL 注释掉, 然后在下面新增一行, 内容为
var URL = "https://www.bbb.com/ueditor/";
修改 2:/ueditor/php/config.json
修改文件访问路径前缀, 具体为, 将该文件中所有以 UrlPrefix 结尾的参数, 修改为 https://www.bbb.com
图片服务器端修改
服务器端, 只需要修改 / ueditor/php/controller.php 一个文件即可. 主要就是增加一个 callbackUrl 参数, 用于跨域时的数据回调, 同时增加跨域权限设置.
1. 增加跨域权限设置
header('Access-Control-Allow-Origin: https://www.aaa.com'); // 设置跨域访问 header('Access-Control-Allow-Headers: X-Requested-With,X_Requested_With'); // 设置允许的跨域 header
2. 增加跨域回调参数
将原有的代码
/* 输出结果 */if (isset($_GET["callback"])) { if (preg_match("/^[\w_]+$/", $_GET["callback"])) { echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')'; } else { echo json_encode(array( 'state'=> 'callback 参数不合法' )); }} else { echo $result;}
修改为
/* 输出结果 */if (isset($_GET["callback"])) { if (preg_match("/^[\w_]+$/", $_GET["callback"])) { echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')'; } else { echo json_encode(array( 'state'=> 'callback 参数不合法' )); }} else { if ($_REQUEST['callbackUrl']) { header("Location:".$_REQUEST['callbackUrl']."?ueResult=".urlencode($result)); } else { echo $result; }}
注意: 此处的 ueResult 参数, 客户端将通过该参数, 获取 UEditor 返回的数据.
客户端调用
<script id="container" name="content" type="text/plain"></script><script type="text/javascript"> var ue = UE.getEditor('container'); ue.ready(function() { // 绑定自定义的回调 URL ue.execCommand('serverparam', { 'callbackUrl': 'https://www.aaa.com/uploadCallback' }); });</script>
然后在回调中, 直接输出 UEditor 返回的数据就可以了.
public function uploadCallback() { die($_REQUEST['ueResult']);}
来源: http://www.92to.com/bangong/2018/08-17/34035392.html