当前位置: 首页 > 网络知识

dedecms织梦会员登录二级域名跨域不能获取数据的解决办法

时间:2026-01-29 09:39:29
大家在使用织梦的时候,用到会员中心可能涉及到多二级域名同步登录退出的问题,涉及到跨域,那么这个问题该如何解决呢?在一个技术大牛博客看到过此教程,特此转发分享给大家,解决大家问题。
首先打开 \include\dedeajax2.js 找到
1 DedeXHTTP = new XMLHttpRequest();

在它的下面加入
1 DedeXHTTP.withCredentials = true;

继续找到
1 DedeXHTTP.open("POST", purl, true);

在它的下面加入
1 DedeXHTTP.withCredentials = true;

继续找到
1 DedeXHTTP.open("GET", purl, true);

在它的下面加入
1 DedeXHTTP.withCredentials = true;

继续找到
1 DedeXHTTP.open("GET", purl, false);

在它的下面加入
1 DedeXHTTP.withCredentials = true;

跨域共享cookie的使用教程
1、后台系统系统配置参数核心设置跨域共享cookie的域名,填上.genban

保存修改后,你可能会出现后台登录时提示验证码错误,但是你填的验证码明明是对的,那有可能你的织梦程序不是最新的,你需要替换官方最新版的这2个文件。
提示:替换前记得先备份你的这2个文件,再替换官方的进来。
\include\cmon.inc.php
\include\vdimgck.php
启用 CORS 来解决浏览器跨域出现的拦截跨源问题
有2种方式
方法一:直接在ajax请求的php文件里加入(注意下方文件中的二级域名网址)
1 header("AccessControlAllowCredentials:true"); 2 header("AccessControlAllowOrigin:m.genban");


例如,获取会员登录这个/member/ajax_loginsta.php

如果你有多个ajax获取文件,也需要加入这2行代码。
方法二:在网站环境配置里加入(注意:使用第1种就不要再去操作第2种了)
1) Apache 配置文件里加入

1 Header set AccessControlAllowOrigin "*"


2) Nginx 配置文件里加入
1 add_header AccessControlAllowOrigin *;



3) iis 添加如下标头
1 AccessControlAllowOrigin:*


在子域名的模板中,有ajax获取数据的地方,文件路径要使用主域名的
1 <script src="/include/dedeajax2.js"></script> 2 <script type="text/javascript"> 3 function CheckLogin()/member/ajax_loginsta.php"); 7 DedeXHTTP = null; 8 } 9 </script>


教程完成

上一篇:织梦cms系统TAG标签和分页伪静态设置教程
下一篇:DedeCMS 核心类TypeLink.class.php摘要笔记
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素