今天在研究腾讯的第三方接入 ,参照 腾讯JS SDK 很容易完成对QQ登陆框的部署。
遇到的一个必经的问题是,如何把js变量存入数据库中。
1 。 实际需求是把 openId 以及 accessToken 存入mysql中 ,以便维护用户的信息、
<script type="text/javascript">
if(QC.Login.check()){//如果已登录
QC.Login.getMe(function(openId, accessToken){
alert(["当前登录用户的", "openId为:"+openId, "accessToken为:"+accessToken].join("\n"));
});
//这里可以调用自己的保存接口
//...
}
</script>
1) 可以使用URL + 参数 ,刷新页面将参数 传递给服务端 。
var params ;window.location.href = "www.example.com?params="+params;
2) 可以使用 JS Cookie ,将JS变量存储在Cookie中。
<script language="JavaScript" type="text/javascript">
function addCookie(objName,objValue,objHours){//添加cookie
var str = objName + "=" + escape(objValue);
if(objHours > 0){//为0时不设定过期时间,浏览器关闭时cookie自动消失
var date = new Date();
var ms = objHours*3600*1000;
date.setTime(date.getTime() + ms);
str += "; expires=" + date.toGMTString();
}
document.cookie = str;
alert("添加cookie成功");
}
function getCookie(objName){//获取指定名称的cookie的值
var arrStr = document.cookie.split("; ");
for(var i = 0;i < arrStr.length;i ++){
var temp = arrStr[i].split("=");
if(temp[0] == objName) return unescape(temp[1]);
}
}
function delCookie(name){//为了删除指定名称的cookie,可以将其过期时间设定为一个过去的时间
var date = new Date();
date.setTime(date.getTime() - 10000);
document.cookie = name + "=a; expires=" + date.toGMTString();
}
function allCookie(){//读取所有保存的cookie字符串
var str = document.cookie;
if(str == ""){
str = "没有保存任何cookie";
}
alert(str);
}
function $(m,n){
return document.forms[m].elements[n].value;
}
function add_(){
var cookie_name = $("myform","cookie_name");
var cookie_value = $("myform","cookie_value");
var cookie_expireHours = $("myform","cookie_expiresHours");
addCookie(cookie_name,cookie_value,cookie_expireHours);
}
function get_(){
var cookie_name = $("myform","cookie_name");
var cookie_value = getCookie(cookie_name);
alert(cookie_value);
}
function del_(){
var cookie_name = $("myform","cookie_name");
delCookie(cookie_name);
alert("删除成功");
}
</script>
3 ) 使用Ajax 。
(1).创建 XMLHttpRequest 对象
为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
然后调用 XMLHttpRequest 的open() ,send()方法
xmlhttp.open("GET","demo.php?fname=Bill&lname=Gates",true);
xmlhttp.send();
即可在demo.php 页面通过$_GET['fname'], $_GET['lname']获得 ,在大部分情况下GET 方式发送数据都是可行的
本文探讨了如何利用腾讯JSSDK实现QQ登录框的部署,并详细阐述了如何将用户信息如openId和accessToken存入MySQL数据库,同时介绍了URL参数、JSCookie和Ajax等方法进行数据存储。
3万+

被折叠的 条评论
为什么被折叠?



