簡體   English   中英

Set-Cookie存在於標頭響應中,但在瀏覽器中缺失

[英]Set-Cookie present in header response but missing in browser

基本上會話無法正常工作。 會話正在生成並存儲在服務器的正確文件夾中,但沒有像通常的PHPSESSID cookie那樣存儲在瀏覽器中。 phpinfo()表明正在發送Set-Cookie標頭,但瀏覽器得到的響應中缺少Set-Cookie標頭。 請檢查以下屏幕截圖:

服務器端提供的Set-Cookie標頭:

phpinfo屏幕快照,顯示Set-Cookie標頭

瀏覽器得到的響應中缺少Set-Cookie標頭:

瀏覽器屏幕截圖顯示未響應Set-Cookie

另一個信息是,如果我使用JavaScript設置cookie,則它可以工作並顯示在瀏覽器的開發人員工具中。

關於會話的一切都可以,只是試圖在瀏覽器上設置的cookie似乎沒有設置。

回答原因並解決,因為它可能會在將來對某人有所幫助並節省許多時間:

此錯誤發生在以前由其他人構建的站點中。 該錯誤似乎非常罕見,我認為問題很可能與Apache有關。 我刪除了Apache並重新安裝沒有任何效果。 然后,我安裝了Nginx,以查看問題是否出在Web服務器軟件或服務器本身上。 我發現Session在Nginx中工作正常。 因此,問題肯定出在某個地方的Apache。

當我檢查文件時,發現在Cookie下方某處的.htaccess文件中未設置

Header unset Cookie
Header unset Set-Cookie

沒想到有人會放那個! 但是無論如何,刪除上面的內容可以解決問題。

與我的服務提供商遇到了相同的行為。 事實證明,這是它們方面的緩存問題(清漆緩存)。

幸運的是,我能夠通過提供的admin-backend 禁用Varnish-Cache 之后,Set-Cookie標頭出現在客戶端響應中。

暫無
暫無

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

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