解决uniapp无法携带cookie问题(非H5平台)
weapp-cookie
GitHub地址:https://github.com/charleslo1/weapp-cookie
问题描述:
小程序原生的 request 网络请求接口并不支持传统的 Cookie,但有时候我们现有的后端接口依赖 Cookie(比如服务器用户登录态),这个库可用一行代码为你的小程序实现 Cookie 机制,以保证基于 cookie 的服务会话不会失效,与 web 端共用会话机制
解决办法:
npm install weapp-cookie --save
cp -rf ./node_modules/ ./vendor/
使用:
import cookies from 'weapp-cookie'
// 获取 cookie
let token = cookies.get('csrf_token', 'example.com')
// 设置 cookie
let cookie = cookies.set('uid', 100, { domain: 'example.com' })
// 删除 cookie
let isRemoved = cookies.remove('uid', 'example.com')
// 判断是否存在 cookie
let hasToken = cookies.has('uid', 'example.com')
cookies.get(String name, String domain)
更多详见:
[1] :https://github.com/charleslo1/weapp-cookie:readme.
解决uniapp无法携带cookie问题(H5端)
详见如下代码:
//写Cookie
function addCookie(objName, objValue, objHours) {
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;
}
//读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]); //解码
}
return "";
}
详见:
[2] :https://www.cnblogs.com/soundcode/p/11351190.html
小程序:插值语法不用this.param.prama 尽量使用param.param
文章评论