巧用UC解决DEDECMS二级域名跨域问题
来源:asp之家 时间:2009-04-04 12:45:00
举例:
www.123.com
要求:
news.123.com获得www.123.com的登陆状态 以及评论/DIGG等更多交互信息
不管你是否需要整合DZ论坛等其他产品 你都可以装一个UC来做通讯中转
操作:
www.123.com为DEDE5.3 安装UC接口
生成news文件夹 绑定news.123.com
在UC后台添加应用 手动添加 news.123.com
填写通讯密钥
保存--------------显示通讯失败
拷贝www.123.com目录下相应目录到news.123.com
分别为
api
data
include
uc_client
实际上只需要这些文件夹的部分文件即可
另外需要修改几个主要文件的参数
uc_clientdatacacheapps.php 必须要在UC添加应用后重新从5.3主目录拷贝 查看下 里面写的是所有应用列表 要保持一致
例如 添加了news 然后添加 photo子域名 需要重新拷贝一次
include/common.inc.php 最下方 修改为当前二级域名的 通讯密钥 以及 APP_ID 就是UC里的序号
data/config.cache.inc.php 修改域名为二级域名地址
拷贝这些文件到 news 的根目录
到UC里测试 通讯成功
既然通讯成功了 具体怎么应用就看你的了
这里补充下:例如 评论 需要拷贝评论所需的 AJAX 等相关文件到 news下 同样道理
我们只是通讯 而没有实际上跨域 而文件调用在域名上有局限,但是文件本身只知道访问数据,调用数据
所以无论在哪里 只要文件关联完整 都可以使用
也就是让文件从NEWS 访问主数据库 来达到通信的目的
登陆状态 评论 DIGG 都可以通讯了
可以看出 NEWS 文件本身没有程序 只是个目录 也就是个域名
我们只是用主域名的文件伪装来达成通信成功
同样道理 无论任何东西 都可以这样来做 但是具体要看个人操作
如果没有扩展操作 你能获得的只是主域名的登陆状态等通用信息
不过相信此应用会有更强大的地方