![](/img/trans.png)
[英]cordova-plugin-ionic-webview, can't set cookies with Javascript document.cookie (iOS)
[英]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.