首頁  >  文章  >  後端開發  >  為什麼我的瀏覽器不保存來自 Go 後端的 Cookie,除非我指定 `credentials: \'include\'`?

為什麼我的瀏覽器不保存來自 Go 後端的 Cookie,除非我指定 `credentials: \'include\'`?

Susan Sarandon
Susan Sarandon原創
2024-11-24 10:48:10728瀏覽

Why Doesn't My Browser Save Cookies from My Go Backend Unless I Specify `credentials:

瀏覽器無法保留 Cookie

在嘗試建立具有 Go 後端的 React 應用程式時,使用 http.cookie 根據請求的回應設定 cookie 。儘管如此,瀏覽器仍然無法儲存 cookie。 Chrome 和 Firefox 中都曾經遇到過此問題。

經過仔細檢查,我們發現 Fetch API 請求中缺少「credentials」屬性,需要包含 cookie 的回應。透過將 'credentials: "include"' 合併到請求中,瀏覽器能夠保存從回應中取得的 cookie。

fetch(`${url}/login`, {
                method: "POST",
                headers: {
                    "Content-Type": "application/json",
                },
                credentials: "include", // Added parameter
                body: JSON.stringify({
                    email: userDetails.email,
                    password: userDetails.password,
                }),
            }).then((response) => { ...

這一發現凸顯了將 'credentials' 設定為「include」的重要性請求在回應中期待 cookie。缺少此屬性會導致瀏覽器無法儲存 cookie,從而導致上述問題。

以上是為什麼我的瀏覽器不保存來自 Go 後端的 Cookie,除非我指定 `credentials: \'include\'`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn