盛世兔 2016-04-06 10:27 采纳率: 50%
浏览 15378
已结题

微信公众号开发获取openid时的跨域问题

本来很简单的一件事情,结果遇上了跨域。。
接触过微信开发的应该知道,获取openid的时候,有一步是这样的:
页面请求服务器获取openid,服务器让页面redirect到微信服务器,微信服务器返回一个code给本地服务器。
然后,redirect的时候,因为是本地请求微信的域名,就跨域了。
然而我设置了Access-Control-Allow-Origin到http头,又试过原生的XHR请求,都提示跨域问题。
提示是这样的:

XMLHttpRequest cannot load https://open.weixin.qq.com/connect/oauth2/authorize? No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://XX.eicp.net' is therefore not allowed access.

我的代码是这样的:

    var xmlhttp = new XMLHttpRequest();
    if (!xmlhttp.setRequestHeader) {
                xmlhttp = window.XMLHttpRequest();
            }
            xmlhttp.onreadystatechange = function() {
                if (this.readyState == 1) {
                    this.setRequestHeader("Access-Control-Allow-Origin", "*");
                } else if (this.readyState == 4 && this.status == 200) {
                    mui.toast(this);
                }
            }
            xmlhttp.open("GET", "/mobile/weixin/getOpenid", true);
            xmlhttp.send();

也试过:

 <%
    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Content-Type", "text/html; charset=UTF8");
    %>
  • 写回答

2条回答

  • Go 旅城通票 2016-04-06 12:49
    关注

    这种都是服务器端来做,客户端除非open.weixin.qq.com是你的。。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog