簡體   English   中英

無法在Chrome中設置document.cookie

[英]document.cookie can't be set in Chrome

我想使用簡單的JavaScript保存Cookie。 所以我去了w3 ,他們有一個現成的函數來保存cookie。 當我在firefox中嘗試此代碼時,它的工作與預期的完全一樣,但是在Chrome中,cookie無效。 我在這個網站上看到了其他問題,由於缺少到期日期而刪除了cookie,但是我都將日期設置為幾天,而document.cookie從未設置。 我在調試器中逐行瀏覽了代碼,但是document.cookie的值即使在該行之后也保持為空字符串:

document.cookie = cname + "=" + cvalue + ", " + expires + ", path=/ ;";

我已經嘗試過在沒有路徑和/或到期日期的情況下進行此操作,但是似乎沒有任何效果。 我該怎么辦?

@ AndrewL64請求有關我的文件的一些額外信息:我做了一個1頁的html游戲。 我有該腳本的index.html文件,mainstyle.css文件和main.js文件。 在我的腳本中,我使用JQuery來操作DOM元素。 我將代碼放在頁面加載事件中,如下所示:

//==================On Page Load ===================================
$(document).ready(function () {

    $("#gameContainer").hide();
    $("#mainContainer").hide();
    //$("#startContainer").hide();
    $("#skillsContainer").hide();


    prepareGame();
    //startGame();

    /*var cookieName = "sp_str_cookie_save1";
    var saveString = "some value";
    setCookie(cookieName, saveString, 10);
    var cookieResult = getCookie(cookieName);*/
    const cname = "someCookie";
    const expires = "Thu, 2 Aug 2020 20:47:11 UTC";
    const cvalue = "someValue";

    document.cookie = cname + "= " + cvalue + "; " + "expires=" + expires + "; " + "path=/";

});

我在這里的另一個Stackoverflow問題中找到了答案。 簡而言之,某些瀏覽器在本地打開html文件時不會設置cookie。 例如,Chrome沒有,但Firefox有。 因此,如果您離線工作,請在Firefox中測試Cookie。

參數應該用分號空格 隔開 ,而不是逗號


從此更改當前代碼:

document.cookie = cname + "=" + cvalue + ", " + expires + ", path=/ ;";

對此:

document.cookie = cname + "= " + cvalue + "; " + expires + "; " + "path=/";

檢查並運行具有以下代碼片段的 JSFiddle ,然后檢查您的瀏覽器cookie以查看添加的新cookie:

 const cname = "someCookie"; const expires = "Thu, 2 Aug 2020 20:47:11 UTC"; const cvalue = "someValue"; document.cookie = cname + "= " + cvalue + "; " + "expires=" + expires + "; " + "path=/"; 


注意 :上面的代碼段不會設置cookie,因為該代碼段環境只是一個沙箱,並且缺少“ allow-same-origin-origin”標志。 檢查JSFiddle以查看上面的JavaScript將cookie添加到瀏覽器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM