- 1、js怎麼獲取到cookie的值
- 2、js 如何讀取cookie?
- 3、如何使用js來獲取cookie的值
- 4、js中如何獲取Cookies的值
- 5、如何用js實現跨域獲取cookie
獲取Cookie函數:
function getCookie(cookieName) {
var strCookie = document.cookie;
var arrCookie = strCookie.split(“; “);
for(var i = 0; i arrCookie.length; i++){
var arr = arrCookie[i].split(“=”);
if(cookieName == arr[0]){
return arr[1];
}
}
return “”;
}
調用:
var user_id = getCookie(“selected_prj_id”);
1、獲取所有cookie
function getCookies() {
var showAllCookie = ”;
if(!document.cookie == ”){
var arrCookie = document.cookie.split(‘; ‘); //用spilt(‘; ‘)切割所有cookie保存在數組arrCookie中
var arrLength = arrCookie.length;
for(var i=0; iarrLength; i++) {
showAllCookie += ‘c_name:’ + unescape(arrCookie[i].split(‘=’)[0]) + ‘c_value:’ + unescape(arrCookie[i].split(‘=’)[1]) + ‘br’ 9
}
return showAllCookie;
}
}
2、通過名稱讀取cookie
function getCookie(name)
{
var arr,reg=new RegExp(“(^| )”+name+”=([^;]*)(;|$)”);
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
讀取屬於當前文檔的所有cookies
var allcookies = document.cookie;
定義一個函數,用來讀取特定的cookie值。
function getCookie(cookie_name)
{
var allcookies = document.cookie;
var cookie_pos = allcookies.indexOf(cookie_name); //索引的長度
// 如果找到了索引,就代表cookie存在,
// 反之,就說明不存在。
if (cookie_pos != -1)
{
// 把cookie_pos放在值的開始,只要給值加1即可。
cookie_pos += cookie_name.length + 1; //這裡我自己試過,容易出問題,所以請大家參考的時候自己好好研究一下。。。
var cookie_end = allcookies.indexOf(“;”, cookie_pos);
if (cookie_end == -1)
{
cookie_end = allcookies.length;
}
var value = unescape(allcookies.substring(cookie_pos, cookie_end)); //這裡就可以得到你想要的cookie的值了。。。
}
return value;
}
// 調用函數
var cookie_val = getCookie(“username”);
首先JS設置cookie:
假設在A頁面中要保存變數username的值(“jack”)到cookie中,key值為name,則相應的JS代碼為:
document.cookie=”name=”+username;
JS讀取cookie:
var username=document.cookie.split(“;”)[0].split(“=”)[1];
function setCookie(name,value)
{
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name +”=”+ escape (value) +”;expires=” + exp.toGMTString();
}
讀取cookies
function getCookie(name)
{
var arr,reg=new RegExp(“(^| )”+name+”=([^;]*)(;|$)”);
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
擴展資料
伺服器可以利用Cookies包含信息的任意性來篩選並經常性維護這些信息,以判斷在HTTP傳輸中的狀態。Cookies最典型的應用是判定註冊用戶是否已經登錄網站,用戶可能會得到提示,是否在下一次進入此網站時保留用戶信息以便簡化登錄手續,這些都是Cookies的功用。
另一個重要應用場合是「購物車」之類處理。用戶可能會在一段時間內在同一家網站的不同頁面中選擇不同的商品,這些信息都會寫入Cookies,以便在最後付款時提取信息。
正常情況下,瀏覽器禁止跨域獲取cookie
一般通過sso服務可以實現取得跨域cookie,思路如下:
域A頁面訪問位於域A的伺服器,對許可權進行驗證
域A伺服器於域B伺服器通信,記錄一個唯一的加密串用作身份驗證域(並將cookie信息發送給域B伺服器)
域A伺服器返回302跳轉,跳轉到域B下,並將加密串作為url的一部分
頁面由域A跳轉到域B,域B伺服器通過加密串獲取到事先從域A伺服器上得到的cookie信息,並在響應頭中添加set-cookie欄位設置cookie
原創文章,作者:EVLDG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127012.html