DEDECMS 模板中心

您现在的位置:主页 > 织梦大学 > 织梦技巧 >

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

来源:未知 编辑:admin 发布时间:2020-06-08热度:
大家在使用织梦的时候,用到会员中心可能涉及到多二级域名同步登录退出的问题,涉及到跨域,那么这个问题该如何解决呢?在一个技术大牛 博客 看到过此教程,特此转发分享给大...
大家在使用织梦的时候,用到会员中心可能涉及到多二级域名同步登录退出的问题,涉及到跨域,那么这个问题该如何解决呢?在一个技术大牛博客看到过此教程,特此转发分享给大家,解决大家问题。
 
首先打开 includededeajax2.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的域名,填上.yourweb.com

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

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

1 Header set Access-Control-Allow-Origin "*"
 
2) Nginx 配置文件里加入

1 add_header Access-Control-Allow-Origin *;
 
 
 
3) iis 添加如下标头
 
1 Access-Control-Allow-Origin:*

 
在子域名的模板中,有ajax获取数据的地方,文件路径要使用主域名的

1 <script src="{dede:global.cfg_basehost/}/include/dedeajax2.js"></script>
2 <script type="text/javascript">
3 function CheckLogin(){
4 var taget_obj = document.getElementById('_userlogin');
5 myajax = new DedeAjax(taget_obj,false,false,'','','');
6 myajax.SendGet2("{dede:global.cfg_basehost/}/member/ajax_loginsta.php");
7 DedeXHTTP = null;
8 }
9 </script>
 
教程完成
DedeCMS问题解决

请点击在线联系我们【点击咨询解决问题】   如果您有任何织梦问题,我们将免费为您写解决教程!

用心认真写教程不易,请小打赏我们一下,多少是心意,解决问题是重点

【打赏说明】 如果您认为在本站中看的内容质量不错、或阅读后有所收获、或解决您遇到的实际问题,那不妨小金额的赞助一下尚禹科技,让尚禹科技有动力继续写出更多高质量的教程和心得。以帮助更多的人。[查看打赏记录]

    尚禹科技:承接仿站业务,价格200元起!