dedecms織夢會員登錄二級域名跨域不能獲取數據的解決辦法

2019-06-27 織夢二次開發
  • 文章介紹
大家在使用織夢的時候,用到會員中心可能涉及到多二級域名同步登錄退出的問題,涉及到跨域,那么這個問題該如何解決呢?在一個技術大牛博客看到過此教程,特此轉發分享給大家,解決大家問題。
 
首先打開 \include\dedeajax2.js 找到
 
DedeXHTTP = new XMLHttpRequest();
在它的下面加入
 
DedeXHTTP.withCredentials = true;
繼續找到
 
DedeXHTTP.open("POST", purl, true);
在它的下面加入
 
DedeXHTTP.withCredentials = true;
繼續找到
 
DedeXHTTP.open("GET", purl, true);
在它的下面加入
 
DedeXHTTP.withCredentials = true;
繼續找到
 
DedeXHTTP.open("GET", purl, false);
在它的下面加入
 
DedeXHTTP.withCredentials = true;
跨域共享cookie的使用教程
 
1、后臺-系統-系統配置參數-核心設置-跨域共享cookie的域名,填上.genban.org

 
保存修改后,你可能會出現后臺登錄時提示驗證碼錯誤,但是你填的驗證碼明明是對的,那有可能你的織夢程序不是最新的,你需要替換官方最新版的這2個文件。
 
提示:替換前記得先備份你的這2個文件,再替換官方的進來。
 
\include\common.inc.php
 
\include\vdimgck.php
 
啟用 CORS 來解決瀏覽器跨域出現的攔截跨源問題
 
有2種方式
 
方法一:直接在ajax請求的php文件里加入(注意下方文件中的二級域名網址)
 
header("Access-Control-Allow-Credentials:true");
header("Access-Control-Allow-Origin:http://m.genban.org");
 
例如,獲取會員登錄這個/member/ajax_loginsta.php
 
 
如果你有多個ajax獲取文件,也需要加入這2行代碼。
 
方法二:在網站環境配置里加入(注意:使用第1種就不要再去操作第2種了)
 
1) Apache 配置文件里加入
 
Header set Access-Control-Allow-Origin "*"
 
2) Nginx 配置文件里加入
 
add_header Access-Control-Allow-Origin *;
 
3) iis 添加如下標頭
 
Access-Control-Allow-Origin:*

 
在子域名的模板中,有ajax獲取數據的地方,文件路徑要使用主域名的

<script src="{dede:global.cfg_basehost/}/include/dedeajax2.js"></script>
<script type="text/javascript">      
function CheckLogin(){         
	var taget_obj = document.getElementById('_userlogin');        
	myajax = new DedeAjax(taget_obj,false,false,'','','');         
	myajax.SendGet2("{dede:global.cfg_basehost/}/member/ajax_loginsta.php");        
	DedeXHTTP = null;      
  }    
</script>

 
 
教程完成

上一篇:dedecms 首頁arclist按照'weight'排序

下一篇:dedecms如何寫API接口

專業的織夢模板定制下載站,在線購買后即可下載!

商業源碼

跟版網模板,累計幫助5000+客戶企業成功建站,為草根創業提供助力!

立刻開啟你的建站之旅
QQ在線客服

服務熱線

織夢建站咨詢
北京快乐8公式全天计划