盛世兔
2016-04-06 10:27微信公众号开发获取openid时的跨域问题
2本来很简单的一件事情,结果遇上了跨域。。
接触过微信开发的应该知道,获取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条回答
为你推荐
- 求助:html只能在微信浏览器打开,调用微信接口问题?
- html5
- php
- 1个回答
- 微信授权登录,open_id是如何生成的?
- java
- 微信
- 5个回答
- 网页获得微信网页code值后刷新问题
- 微信公众平台
- java
- jquery
- 3个回答
- 微信公众号获取用户openid
- 微信公众平台
- 微信
- 1个回答
- 微信统一下单签名错误获取不到prepay_id
- 微信公众平台
- java
- 微信开放平台
- 微信
- 1个回答
换一换