使用js或jq,获取httponly的cookie
在JavaScript中,HttpOnly
属性的cookie是无法通过客户端脚本(如JavaScript或jQuery)直接访问的。这是出于安全考虑,防止跨站脚本攻击(XSS)等安全问题。
HttpOnly
属性的cookie只能在服务器端访问。如果你需要在客户端访问某些信息,建议不要将这些信息存储在HttpOnly
的cookie中,或者在服务器端处理这些信息并通过其他方式传递给客户端。
如果你需要在客户端访问某些信息,可以使用普通的cookie(不设置HttpOnly
属性),然后通过JavaScript或jQuery来读取这些cookie。例如:
document.cookie = "username=JohnDoe; path=/";
function getCookie(name) {
let cookieArr = document.cookie.split(";");
for(let i = 0; i < cookieArr.length; i++) {
let cookiePair = cookieArr[i].split("=");
if(name == cookiePair[0].trim()) {
return decodeURIComponent(cookiePair[1]);
}
}
return null;
}
// 使用函数获取cookie
let username = getCookie("username");
console.log(username); // 输出: JohnDoe
如果你使用jQuery,可以使用一个插件如 js-cookie
来简化cookie的操作。
首先,确保你已经包含了 js-cookie
插件:
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/3.0.1/js.cookie.min.js"></script>
然后,你可以这样设置和读取cookie:
// 设置cookie
Cookies.set('username', 'JohnDoe');
// 读取cookie
let username = Cookies.get('username');
console.log(username); // 输出: JohnDoe
总之,HttpOnly
属性的cookie是无法通过JavaScript或jQuery访问的。如果你需要在客户端访问某些信息,请使用普通的cookie或其他安全的方式来传递这些信息。