用戶(hù)在瀏覽器上打開(kāi)你的主站(www.j4240.cn)登錄會(huì)員,然后瀏覽你的子站點(diǎn)手機(jī)站(m.91084.com)或者商城站
(shop.91084.com)時(shí)不需要重新登錄會(huì)員,實(shí)現(xiàn)跨域共享cookie。
織夢(mèng)跨域共享cookie的BUG修復(fù)
喜歡自己改的小伙伴打開(kāi) /include/dedeajax2.js 找到
DedeXHTTP = new XMLHttpRequest();
在它的下面加入
DedeXHTTP.withCredentials = true;
繼續(xù)找到
DedeXHTTP.open("POST", purl, true);
在它的下面加入
DedeXHTTP.withCredentials = true;
繼續(xù)找到
DedeXHTTP.open("GET", purl, true);
在它的下面加入
DedeXHTTP.withCredentials = true;
繼續(xù)找到
DedeXHTTP.open("GET", purl, false);
在它的下面加入
DedeXHTTP.withCredentials = true;
織夢(mèng)跨域共享cookie的使用教程
1、后臺(tái)-系統(tǒng)-系統(tǒng)配置參數(shù)-核心設(shè)置-跨域共享cookie的域名,填上
.91084.com
注意有個(gè)英文小數(shù)點(diǎn)
保存修改后,你可能會(huì)出現(xiàn)后臺(tái)登錄時(shí)提示驗(yàn)證碼錯(cuò)誤,但是你填的驗(yàn)證碼明明是對(duì)的,那有可能你的織夢(mèng)程序不是最新的,你
 
需要替換官方最新版的這2個(gè)文件。
提示:替換前記得先備份你的這2個(gè)文件,再替換官方的進(jìn)來(lái)。
/include/common.inc.php
/include/vdimgck.php
2、啟用 CORS 來(lái)解決瀏覽器跨域出現(xiàn)的攔截跨源問(wèn)題
解決瀏覽器跨域攔截跨源有2種方法
第1種,直接在ajax請(qǐng)求的php文件里加入
header("Access-Control-Allow-Credentials:true");
header("Access-Control-Allow-Origin:http://m.91084.com");
例如,獲取會(huì)員登錄狀態(tài)是這個(gè)文件 http://www.j4240.cn/member/ajax_loginsta.php
如果你有多個(gè)ajax獲取文件,也需要加入這2行代碼。
第2種,在網(wǎng)站環(huán)境配置里加入(注意:使用第1種就不要再去操作第2種了)
2-1) Apache環(huán)境的小伙伴在conf配置文件里加入
Header set Access-Control-Allow-Origin "*"
2-2) Nginx環(huán)境的小伙伴在配置文件里加入
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Headers "x-requested-with,Authorization";
add_header Access-Control-Allow-Methods *;
2-3) iis環(huán)境的小伙伴添加如下標(biāo)頭
Access-Control-Allow-Origin:*
打開(kāi)IIS,找到“HTTP響應(yīng)標(biāo)頭”點(diǎn)進(jìn)去,在右側(cè)可以看到添加,然后添加如下標(biāo)頭即可
3、在子域名的模板中,有ajax獲取會(huì)員登錄狀態(tài)數(shù)據(jù)的地方,文件路徑要使用主域名的文件
例如
<script type="text/javascript" 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>