js無法設置cookie是什麼,配置什麼參數避免js訪問cookie

本文目錄一覽:

js 在chrome下無法對cookie進行操作,求解決方案

此函數兼容IE和火狐.Chrome應該在可以.你可以試試

寫入cookies:setCookie(“Name”,”Value”);

讀取cookies:getCookie(“Name”);

function getCookie(name){

var arg = name + “=”;

var alen = arg.length;

var clen = document.cookie.length;

var i = 0;

while (i clen){

var j = i + alen;

if(document.cookie.substring(i, j) == arg)

return getCookieVal(j);

i = document.cookie.indexOf(” “, i) + 1;

if(i == 0) break;

}

return null;

}

function setCookie(name,value){

var argv = setCookie.arguments;

var argc = setCookie.arguments.length;

var expires = (argc 2) ? argv[2] : null;

var path = (argc 3) ? argv[3] : null;

var domain = (argc 4) ? argv[4] : null;

var secure = (argc 5) ? argv[5] : false;

document.cookie = name + “=” + escape (value) +

((expires == null) ? “” : (“; expires=” + expires.toUTCString())) +

((path == null) ? “” : (“; path=” + path)) +

((domain == null) ? “” : (“; domain=” + domain)) +

((secure == true) ? “; secure” : “”);

}

function getCookieVal(offset){

var endstr = document.cookie.indexOf (“;”, offset);

if (endstr == -1)

endstr = document.cookie.length;

return unescape(document.cookie.substring(offset, endstr));

}

javascript無法寫入cookie,跪求解決辦法

您好:給您寫一個讀寫Cookei的js方法.直接用就可以

//寫cookie操作,調用方法setCookie(name,value);

function setCookie(name, value, hours, path, domain, secure) {

    var cdata = name + “=” + value;

    if (hours) {

        var d = new Date();

        d.setHours(d.getHours() + hours);

        cdata += “; expires=” + d.toGMTString();

    }

    cdata += path ? (“; path=” + path) : “”;

    cdata += domain ? (“; domain=” + domain) : “”;

    cdata += secure ? (“; secure=” + secure) : “”;

    document.cookie = cdata;

}

//讀cookie操作

function getCookie(name) {

    var reg = eval(“/(?:^|;\\s*)” + name + “=([^=]+)(?:;|$)/”);

    return reg.test(document.cookie) ? RegExp.$1 : “”;

}

//刪除cookie操作

function removeCookie(name, path, domain) {

    this.setCookie(name, “”, -1, path, domain);

}

如果幫到您,希望採納哦

js設置不了cookie

本地單純的一個html文件(沒有伺服器歸屬)在谷歌瀏覽器中cookie無效,其它瀏覽器好像都可以正常讀寫的,如果你確定cookie.js沒有問題的話,注意一下id是不是重複了(你上面的代碼就出現了id重複),還有body不是在head裡面的

js 怎麼重新設置cookie

這個看你有沒有使用cookie的插件

如果使用,可以看看具體的插件使用指導

例如:不同的 系統可能會用不同的創建,像傲隆盛 jquery.cookie.js或者看如下的小案例:

1.生成一個cookie,名稱為user,內容為liayun:

$.cookie(“user”,”liayun”);

2.cookie的參數設置:

$.cookie(“user”,”liayun”, {

expires:7, //過期時間,7天後過期

path:”/”, //根目錄,path的作用就是設置路徑,根目錄到底所謂何???

});

$.cookie(“aaa”,”bbb”, {

//domain:”” //設置域名,可以發現名為aaa的cookie並沒有建立,為何???

secure:true //發送條件:僅限加密連接 默認為false,需要使用安全協議https

});

綜上所述,除了expires這個參數有用,其他根本就沒什麼鳥用!!!

3.讀取cookie數據:

alert($.cookie(“user”)); //liayun

alert($.cookie(“aaa”)); //undefined,名為aaa的cookie的參數secure為true,因為需要使用安全協議https,而我們一般使用http協議,所以返回undefined

$.cookie(“ccc”,””); //自動編碼為:%E6%9D%8E%E9%98%BF%E6%98%80

alert($.cookie(“ccc”)); //自動解碼為:

4.關閉編碼/解碼,默認為false:

$.cookie.raw = true;

$.cookie(“ddd”,””); //沒有自動編碼,

alert($.cookie(“ddd”)); //

5.讀取所有cookie數據:

alert($.cookie());

js設置cookie的簡單方法

一,js設置cookie的用處

php可以設置cookie的,用js來設置cookie有什麼好處呢?在前端進行操作時,有的時候要傳很多參數,這個時候,我們可以把這些參數拼接到url後面進行傳值,那邊在接收參數,不過這樣挺麻煩的,如果把這些數據放到cookie裡面,就開發者的開發效率來說,我想會高一些,以淘寶為例,他有一級分類,二級分類,三級,四級,我們找商品的時候,可能會牽扯到很多條件,如果把這些條件都放到cookie裡面,我感覺就方便多了,不知道淘寶是不是這樣的。淘寶的url是加了密的,並且好長,有可能是根在url的後面。費話不多說看一個小例子。

二,js實例

調用一下上面方法:

setCookie(“test”,”tank”,1800); //設置cookie的值,生存時間半個小時

alert(getCookie(‘test’)); //取得cookie的值,顯示tank

clearCookie(“test”); //刪除cookie的值

alert(getCookie(‘test’)); //test對應的cookie值為空,顯示為false.就是getCookie最後返的false值。

深入理解cookie

看個實際生活的例子:

學校門口有家飯店味道不錯,小明去吃了一次,確實味道不錯,這周小明又去這家飯店吃飯,結賬時,小明說:」我上周來過,這是第二次了,能不能打個折?「。老闆說:」你來過?我不記得啊(無狀態)「。小明表示很生氣,明明來過老闆竟然不記得。老闆想了個法子,給小明發了張卡片(cookie),上面寫著小明的信息,下次小明拿著卡片來老闆就認識了。

回到正題,cookie用在http請求中,而http是無狀態協議,它的每個請求都是完全獨立的,服務端無法判別用戶狀態,cookie用來告訴服務端用戶的狀態信息。客戶端用戶第一次發送請求給服務端時,服務端在返回的響應中發給用戶一個cookie,裡面記錄了用戶的信息,下次用戶再發送http請求給服務端時,會攜帶上cookie,服務端檢查cookie獲取用戶的狀態信息。

cookie的內容主要是服務端寫入的,由客戶端存儲在本地,cookie其實是以字元串的形式存儲的。打開谷歌開發者工具的Application中的Cookie,可以看到cookie具有以下欄位

cookie以鍵值對的形式存儲用戶數據

不同域名是無法操作彼此cookie的,而且必須滿足path一樣或者是其子路徑才能相互訪問彼此的cookie。

domain用來設置可以使用cookie的域名,如果想讓一級域名下的兩個二級域名都能使用cookie,例如imag.baidu.com和,可以設置domain為baidu.com,但不能設置為.com,這樣兩個二級域名都能使用。path屬性設置允許使用cookie的路徑,例如設置為根路徑”/”,表示允許根路徑以及根路徑下的所有子路徑都可以使用cookie

所以domain和path共同決定了cookie能否被瀏覽器自動添加到請求頭部中發送出去。如果沒有設置這兩個選項,則會使用默認值。domain的默認值為設置該cookie的網頁所在的域名,path默認值為設置該cookie的網頁所在的目錄。

此外,如果是跨域請求,例如XMLHttpRequest請求,默認是不會自動攜帶cookie的。

cookie的過期時間,Expires是具體日期,Max-Age是一段時間

cookie的大小,一般是4k,此外cookie的個數也有限制,不同瀏覽器cookie的個數限制不同

該cookie數據是否只用來在http請求中傳遞,默認為false,如果設置該欄位為true,客戶端無法用js訪問或者操作該cookie,這條cookie信息不會出現在document.cookie的字元串中。

默認為false,設置該欄位為true則該cookie不會攜帶在http協議的請求中,只能攜帶在安全的https協議請求中

當網頁要發http請求時,瀏覽器會先檢查是否有相應的cookie,有則自動添加在request header中的cookie欄位中。這些是瀏覽器自動幫我們做的,而且每一次http請求瀏覽器都會自動幫我們做。這個特點很重要,因為這關係到「什麼樣的數據適合存儲在cookie中」。

因為每次瀏覽器發送http請求都會自動攜帶cookie,會增加網路開銷,所以最好只存放每次請求都需要發送給服務端的數據,比如身份認證信息。

客戶端使用js設置 cookie,客戶端可以設置cookie 的下列選項:expires、domain、path、secure(有條件:只有在https協議的網頁中,客戶端設置secure類型的 cookie 才能成功),但無法設置HttpOnly選項。document.cookie可以獲取cookie字元串,也可以設置cookie。

document.cookie=”age=12; expires=Thu, 26 Feb 2116 11:50:25 GMT; domain=sankuai.com; path=/”;

值得注意的是,瀏覽器提交Cookie時只會提交name和value屬性,maxAge屬性只被瀏覽器用來判斷Cookie是否過期。

當要設置多個cookie時,必須重複設置document.cookie = “key=name”。

要想修改一個cookie,只需要重新賦值就行,舊的值會被新的值覆蓋。但要注意一點,在設置新cookie時,path/domain這幾個選項一定要舊cookie 保持一樣。否則不會修改舊值,而是添加了一個新的 cookie。刪除一個cookie 也挺簡單,也是重新賦值,只要將這個新cookie的expires 選項設置為一個過去的時間點就行了。但要注意,path/domain/這幾個選項一定要舊cookie 保持一致。

服務端的response header中有一項叫set-cookie,是服務端專門用來設置cookie的。

原創文章,作者:RRIL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/140098.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
RRIL的頭像RRIL
上一篇 2024-10-04 00:23
下一篇 2024-10-04 00:23

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Spring Boot中發GET請求參數的處理

    本文將詳細介紹如何在Spring Boot中處理GET請求參數,並給出完整的代碼示例。 一、Spring Boot的GET請求參數基礎 在Spring Boot中,處理GET請求參…

    編程 2025-04-29
  • Python input參數變數用法介紹

    本文將從多個方面對Python input括弧里參數變數進行闡述與詳解,並提供相應的代碼示例。 一、基本介紹 Python input()函數用於獲取用戶輸入。當程序運行到inpu…

    編程 2025-04-29
  • Hibernate日誌列印sql參數

    本文將從多個方面介紹如何在Hibernate中列印SQL參數。Hibernate作為一種ORM框架,可以通過列印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • Python Class括弧中的參數用法介紹

    本文將對Python中類的括弧中的參數進行詳細解析,以幫助初學者熟悉和掌握類的創建以及參數設置。 一、Class的基本定義 在Python中,通過使用關鍵字class來定義類。類包…

    編程 2025-04-29
  • Python函數名稱相同參數不同:多態

    Python是一門面向對象的編程語言,它強烈支持多態性 一、什麼是多態多態是面向對象三大特性中的一種,它指的是:相同的函數名稱可以有不同的實現方式。也就是說,不同的對象調用同名方法…

    編程 2025-04-29
  • 全能編程開發工程師必知——DTD、XML、XSD以及DTD參數實體

    本文將從大體介紹DTD、XML以及XSD三大知識點,同時深入探究DTD參數實體的作用及實際應用場景。 一、DTD介紹 DTD是文檔類型定義(Document Type Defini…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29

發表回復

登錄後才能評論