2011-06-03 86 views
27

使用JavaScript設置的Cookie,我有以下目錄樹:在本地HTML文件

+ folder1 
|--- folder2 
|------ page1.html 
|--- page2.html 

如果我使用JavaScript設置在page1.html一些餅乾,什麼是用於該cookie的路徑?

編輯:
讓我更好地解釋它。我正在處理本地文件。 page1.html正通過/home/user/.../folder1/folder2/page1.html訪問,而不是通過使用HTTP服務器的客戶端機器訪問。

只是爲了澄清:
看來,使用file:///時,一些瀏覽器(如Chrome)不存儲cookie,但Firefox和Internet Explorer都這樣做。

+0

獨立於創建頁面的Cookie,「路徑」僅包含網站域。 (假設你的意思是cookie名稱出現在瀏覽器的cookie列表中) – 2011-06-03 20:33:08

+0

請參閱我的編輯。我不知道爲什麼我得到了一個downvote':(' – 2011-06-03 20:34:41

+0

對不起,以爲你沒有檢查一些基本信息 - 無視。 – 2011-06-03 20:36:31

回答

17

MDC page for document.cookie

如果未指定,[所述path參數]默認爲當前文件位置的電流通路。

所以在你的情況下,它將是/folder1/folder2/


我最初並沒有看到您在問題標題中指定了「本地」 - 不確定這是否在我寫回答時更新。根據瀏覽器使用file:///協議進行瀏覽時,cookie不會被設置。

+0

查看@Squeegy發表評論。我有點困惑... – 2011-06-03 20:39:57

+0

@Oscar看到我的,從你的約20像素! – lonesomeday 2011-06-03 20:41:20

+3

是的,這似乎是事情。 IE和Firefox使用'file:///'設置cookies,但Chrome並沒有這樣做:)無論如何,我認爲你的答案對於IE和Firefox是正確的。 – 2011-06-03 20:49:40

9

瀏覽器不會爲file://網址協議存儲Cookie,它會簡單地默默無法設置任何內容。因此,如果這是真正的「本地」而不是域名,那麼您可能會遇到問題。

+0

看來他們確實如此。我在'page1.html'中設置了一個cookie,然後關閉瀏覽器,再次打開頁面(當然是在本地),然後我請求cookie,它仍然存在:? – 2011-06-03 20:36:11

+1

@Oscar我認爲這是一個跨瀏覽器的東西。與Firefox或Internet Explorer相比,Chrome對同源策略的解釋略有不同,特別是當涉及到file:///協議時。 – lonesomeday 2011-06-03 20:39:27

5

set --enable-file-cookies for chrome and it should for you。此外,還有一些功能需要您設置「接受所有Cookie」才能進行工作,但如果您這樣做,請確保在重新聯機之前退回。

+1

如何設置'--enable-file-cookies'這是'chrome:// flags'上的某處? – Mostafa 2017-05-29 07:24:03

8

如果你是在Mac上,你可以關閉瀏覽器,然後重新啓動它,如下所示:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-file-cookies 

然後您就可以對本地文件設置cookie。

+0

+1:這工作。用於終端。我必須刪除「--enable-file-cookies」標誌中的第二個短劃線,所以它應該如下所示:'open/Applications/Google \ Chrome.app/Contents/MacOS/Google \ Chrome -enable-file-cookies' – FreeAsInBeer 2013-06-18 18:50:11