微信网页开发问题汇总

最近做一个微信公众平台的一个订购网页,产生了好多问题,下面是问题与解决方法,欢迎指正学习。

1.如何只让网页在微信打开,其他浏览器拒绝访问?

因为是个订购网页,所以会牵扯恶意用户通过其他途径注册,购买,造成不必要的麻烦。
其他有一种常用的解决方法,那就是使用post提交方式,这样就保证了数据的安全性。可是也是存在一些弊端的,比如,外部还是可以查看网页界面的,如果我不想让通过其他途径看到界面呢,这样保证了数据的绝对安全。

大家都是到微信用的是x5的内核,既然是微信,这么大一个东西,肯定有与众不同的地方,经过百度查阅,我是用这个方法解决的,(原理就是判断其中某一个标志性的东西,判断他的访问来源,从而判断是不是通过微信访问的,博主走马观花,也就会用)

var useragent = navigator.userAgent;
if (useragent.match(/MicroMessenger/i) != 'MicroMessenger') {
    //不是通过微信访问的
}else{
    //执行正常,通过微信访问
}

这样就轻松解决了,安全问题,我的做法是,这网页的head头部里面直接进行判断,如果不是微信,那么直接跳转错误界面。

2. 跨页面数据传输

这个其实已经不是微信开发特有的,当然也是个大问题,我就说说。

1.form表单提交,这个单价一般都会用。method : get/post

2.window.location.href?name=’ys’;
这个有点类似于get方法,优点就是可控制性强,可以随时进行跳转。某些情况下挺有用的,比如:
ok执行代码,error执行代码,可以随意判断跳转页面。

3.利用ajax进行传输
如何实现,可以查看 原生实现ajax
当然这个方法和后天进行数据交互用的较多。

4.利用cookie存数据

//arg1 名字, arg2 值, arg3过期时间
function setCookie(objName,objValue,objHours){  //添加cookie 
    var str = objName + "=" + escape(objValue); 
    if(objHours > 0){                           //为0时不设定过期时间,浏览器关闭时cookie自动消失 
        var date = new Date(); 
        var ms = objHours*1000; 
        date.setTime(date.getTime() + ms); 
        str += "; expires=" + date.toGMTString(); 
    } 
    document.cookie = str; 
} 
//清除cookie
function clearCookie(objName){
    var arrStr = document.cookie.split("; ");
    for(var i = 0;i < arrStr.length;i ++){
        var temp = arrStr[i].split("=");
        var date = new Date();
        var ms = -100*1000; //过期时间为100s以前,
        date.setTime(date.getTime() + ms); 
        document.cookie = temp[0] + "= ''; expires=" + date.toGMTString();;
    }
}
//根据名字获得cookie值
function getCookie(objName){
    //从cookie变量中获取指定的值          
    var arrStr = document.cookie.split("; ");
    for(var i = 0;i < arrStr.length;i ++){
        var temp = arrStr[i].split("=");
        if(objName == temp[0]){
            return unescape(temp[1]);
        }
    }
}

在代码中,我设置过期时间为100s前,在夸页面以后,由于立马设置了他的过期时间,所以导致他的数据就失效了,所以跨页面之后,我们要先保存cookie数据,然后就清除cookie,这样可以防止有些用户按返回键,cookie存留,造成数据冲突的bug。

目前就这么些问题,有了问题在更新吧……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值