Dede会员登录二级域名跨域不能获取数据的解决方_DedeCMS_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • DedeCMS

    当前位置:主页 > CMS教程 > DedeCMS >

    Dede会员登录二级域名跨域不能获取数据的解决方

    时间:2019-10-09|栏目:DedeCMS|点击:
  • Dede会员登录二级域名跨域不能获取数据的解决方

    日期:2019-08-12 22:05

    您的打赏帮助我们变得更好,谢谢支持!

    最近做了一个项目,利用dede搭建的移动端,发现二级域名的移动站使用QQ登录后不能获取到数据的问题,后来知道跨域了。

    网上搜索了很多,无果。后来有幸在dedediy看到了一样的问题,作者附上了详细的教程。特此分享给大家,解决大家学习过程中的困难。

    打开 \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的域名,填上.yxinet.com

    Dede会员登录二级域名跨域不能获取数据的解决方

    保存修改后,你可能会出现后台登录时提示验证码错误,但是你填的验证码明明是对的,那有可能你的织梦程序不是最新的,你需要替换官方最新版的这2个文件。

    提示:替换前记得先备份你的这2个文件,再替换官方的进来。

    \include\common.inc.php

    \include\vdimgck.php

    启用 CORS 来解决浏览器跨域出现的拦截跨源问题

    有2种方式

    方法一:直接在ajax请求的php文件里加入

    header("Access-Control-Allow-Credentials:true"); header("Access-Control-Allow-Origin:");

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

    Dede会员登录二级域名跨域不能获取数据的解决方

    如果你有多个ajax获取文件,也需要加入这2行代码。

    方法二:在网站环境配置里加入(注意:使用第1种就不要再去操作第2种了)

    1) Apache 配置文件里加入

    Header set Access-Control-Allow-Origin "*"

    Dede会员登录二级域名跨域不能获取数据的解决方

    2) Nginx 配置文件里加入

    add_header Access-Control-Allow-Origin *;

    Dede会员登录二级域名跨域不能获取数据的解决方

    3) iis 添加如下标头

    Access-Control-Allow-Origin:*

    Dede会员登录二级域名跨域不能获取数据的解决方

    在子域名的模板中,有ajax获取数据的地方,文件路径要使用主域名的 <script src=http://www.dedecms51.com/dedecmsjiaocheng/zhimengjiqiao/"{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>

    教程完成

    上一篇:把数据保存到数据库主表 `yx_archives` 时出错,请把相关信息提交

    栏    目:DedeCMS

    下一篇:没有了

    本文标题:Dede会员登录二级域名跨域不能获取数据的解决方

    本文地址:http://www.jh-floor.com/CMSjiaocheng/DedeCMS/86476.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号