php小編柚子在這裡為大家介紹一個常見的問題-瀏覽器未儲存cookie。當我們日常使用瀏覽器進行網頁存取時,cookie是一種常見的機制,它可以幫助網站記住使用者的登入狀態、個人化設定等資訊。然而,有時候我們會遇到瀏覽器未儲存cookie的情況,導致登入狀態遺失、無法正常瀏覽網頁等問題。那麼,為什麼會出現這種情況呢?下面就讓我們一起來探究一下吧!
嘗試了 15648070,15648070 不幸的是沒有成功:)
您好,第一次使用 gin 建置 api,我在瀏覽器上設定 cookie 時遇到一些問題
我的意思是,當在dev 工具
上查看請求時,我看到了set-cookie
標頭和正確的值,也在該請求中的cookie
選項卡下我還看到了cookie
主要問題是它沒有保存在我的瀏覽器上(dev工具
-> application
-> storage
-> cookies
和我的cookie不存在)
後端:
router.use(cors.new(cors.config{ allowmethods: []string{"get", "post", "put", "patch", "delete", "head", "options"}, allowheaders: []string{"origin", "content-length", "content-type"}, maxage: 12 * time.hour, allowallorigins: true, allowcredentials: true, })) router.post("/users/login", server.loginuser)
func (server *server) loginuser(ctx *gin.context) { ... ctx.setcookie("access_token", accesstoken, 3600, "/", "localhost", false, true) ctx.setcookie("refresh_token", refreshtoken, 3600, "/", "localhost", false, true) ctx.json(http.statusok, gin.h{"ok": true, "payload": rsps}) }
前端:
const login = async () => { const res = await fetch("http://localhost:3000/users/login", { method: "POST", body: JSON.stringify({ username, password }), }); const data = await res.json(); console.log(data); }; const handleFormSubmit = (e) => { e.preventDefault(); login(); }; return ( <div> <h1>Login Page</h1> <form onSubmit={handleFormSubmit}> ... <button type="submit">Login</button> </form> </div> );
任何線索..?
(感謝 Discord
上的 #Reactiflux
頻道)
我錯過了兩件事..
伺服器端:
AllowHeaders
headers -> 新增 "Access-Control-Allow-Headers", "Authorization"
新增 AllowOriginFunc
-> 意味著不允許 *
而不是特定域
前端:
withCredentials: true
新增到我的 axios
設定以上是瀏覽器未儲存cookie的詳細內容。更多資訊請關注PHP中文網其他相關文章!