是否有可能從javascript檢索現有cookie的創建或到期日期?如果是這樣如何?如何從javascript獲取cookie過期日期/創建日期?
回答
該信息不可通過document.cookie獲得,但是如果您真的非常渴望它,可以嘗試通過XmlHttpRequest對象執行請求到當前頁面並使用getResponseHeader()訪問cookie標頭。
響應頭上沒有這樣的東西。 我試過了:request.getAllResponseHeaders();它提供了一個關閉的事情:到期日:星期四,1981年11月19日08:52:00格林尼治標準時間 但沒有相關的各種cookie與他們到期時間... ...爲什麼呢?服務器與客戶端Cookie無關...... – Carmageddon 2012-11-27 08:28:07
出於安全原因,從xhr響應中刪除了Set-Cookie和Set-Cookie2標頭。你可以做的是在服務器端設置額外的cookie和cookie到期日期並讀取它。 – 2015-05-10 07:55:37
我不認爲這會起作用 – 2015-07-15 22:00:00
這是不可能的。 document.cookie
包含以下字符串中的信息:
key1=value1;key2=value2;...
因此,沒有關於日期的任何信息。
您可以在不同的cookie變量存儲這些日期:
auth_user=Riateche;auth_expire=01/01/2012
但用戶可以更改此變量。
好的建議... – mkoistinen 2017-11-28 04:25:52
一種可能性是刪除到cookie,您正在查找並重寫它的到期日期。然後你就會知道到期日期。
你無法通過JavaScript得到一個cookie的有效期,因爲當你嘗試讀取cookie從JavaScript的document.cookie中僅返回名稱和cookie的成對
的價值是,它是可能的。我已經分開的代碼在兩個文件中:
的index.php
<?php
$time = time()+(60*60*24*10);
$timeMemo = (string)$time;
setcookie("cookie", "" . $timeMemo . "", $time);
?>
<html>
<head>
<title>
Get cookie expiration date from JS
</title>
<script type="text/javascript">
function cookieExpirationDate(){
var infodiv = document.getElementById("info");
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest;
}else{
xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
}
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
infodiv.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "cookie.php", true);
xmlhttp.send();
}
</script>
</head>
<body>
<input type="button" onclick="javascript:cookieExpirationDate();" value="Get Cookie expire date" />
<hr />
<div id="info">
</div>
</body>
</html>
cookie.php現在
<?php
function secToDays($sec){
return ($sec/60/60/24);
}
if(isset($_COOKIE['cookie'])){
if(round(secToDays((intval($_COOKIE['cookie']) - time())),1) < 1){
echo "Cookie will expire today";
}else{
echo "Cookie will expire in " . round(secToDays((intval($_COOKIE['cookie']) - time())),1) . " day(s)";
}
}else{
echo "Cookie not set...";
}
?>
,index.php文件必須加載一次。通過AJAX請求,「獲取Cookie過期日期」按鈕將始終爲您提供更新的「剩餘時間」,以便在這種情況下以天爲單位。
'intval($ _ COOKIE ['cookie'])'假設您將過期值存儲在cookie值中 – 2015-07-14 19:34:44
@ JonathanLeaders正確地說,它被存儲在cookie值中,我沒有明白你的意思 – 2015-07-15 07:35:25
OP指的是從已經存在的cookie中檢索日期,而不是我們創建的新日期,將日期作爲單獨的信息存儲 – 2015-07-15 21:58:22
如果您使用的是Chrome,則可以轉到「資源」選項卡並在左側邊欄中找到「Cookies」項。從那裏選擇你正在檢查設置cookie的域名,它會給你一個與該域名相關的cookies列表,以及它們的截止日期。
即使這沒有解決使用JavaScript,它仍然有用。 – Stonetip 2015-01-07 20:13:45
在這個例子中,你可以解釋一下當'Expires'列顯示'會話'的一些cookie和一個日期的含義。 – 2016-11-25 05:04:10
@GauravOjha如果它說會話,那麼它意味着它會在服務器分配給你一個新的會話時到期,並且可以通過(A)註銷(B)關閉瀏覽器(不是標籤)來完成 ,,,,,但是如果它顯示一些日期,這意味着它是一個手動創建的cookie(某些代碼創建它並明確設置了日期) – 2016-11-27 08:03:18
這很好。順便說一句。它現在是應用程序選項卡 - 不是資源(mac)。 – chiappa 2017-07-31 13:43:15
- 1. 讀取cookie過期日期
- 2. 閱讀Cookie創建日期(不是「過期日期」)|| Java
- 3. 如何創建過期日期的Etag
- 4. NSHTTPCookieStorage和Cookie過期日期
- 5. Cookie的過期日期
- 6. Cookie設置日期過期
- 7. 如何閱讀cookie創建日期(不過期)
- 8. Filesysteminfo獲取創建日期
- 9. 如何分配cookie過期日期?
- 10. 如何從javascript日期對象獲取json日期?
- 11. BigCommerce獲取按分鐘創建日期創建日期
- 12. 從JavaScript中獲取日期
- 13. 通過創建日期獲取文件
- 14. 如何獲取日期和日期?
- 15. 從Jtextfield獲取日期並添加過期日期
- 16. 獲取upcomming過期日期通知和SQL中獲取日期
- 17. JavaScript:獲取週日過去的日期
- 18. javascript從年,月,日創建日期
- 19. 如何從JavaScript獲取日期時間?
- 20. iOS獲取日期從年的日期
- 21. 從laravel獲取日期至日期
- 22. 從日期獲取月份的日期
- 23. PL/SQL如何從日期作爲日期X日前獲取?
- 24. 獲取從日期
- 25. 從Python的日期列獲取周開始日期(星期日)
- 26. 如何從日曆中獲取日期?
- 27. 如何從Internet Explorer獲取與cookie相關的過期日期和標誌?
- 28. javascript如何獲取下週的日期和比較日期
- 29. 從日期字符串創建JavaScript日期對象
- 30. 如何從日期值中獲取日期年份中的日期
只是好奇,你爲什麼標記錯誤的答案被接受? – 2016-04-26 07:51:29