gpt4 book ai didi

go - 无法在 header 中设置 cookie

转载 作者:IT王子 更新时间:2023-10-29 01:49:51 27 4
gpt4 key购买 nike

我正在尝试从 Go 网络服务器设置 cookie,然后在 chrome 浏览器中读取它。

这是我的代码

package main

import (
"fmt"
"net/http"
"time"
)


func setCookies(w http.ResponseWriter, r *http.Request){
expiration := time.Now().Add(365 * 24 * time.Hour)
c1 := http.Cookie{Name: "SpiderMan: Far from home",Value : "HollyWood", Path: "/", Expires: expiration, Secure: false}
http.SetCookie(w,&c1)
c2 := http.Cookie{Name: "Kabir Singh",Value: "BollyWood", Path: "/", Expires: expiration, Secure: false}
http.SetCookie(w,&c2)

// w.Header().Set("Set-Cookie",c1.String())
// w.Header().Add("Set-Cookie",c2.String())
// HttpOnly: true

fmt.Fprintf(w, "")

}

func getCookies(w http.ResponseWriter, r *http.Request){
// h := r.Header["Kabir Singh"]
// fmt.Fprintln(w,h)

c1, err := r.Cookie("Kabir Singh")
if err != nil {
fmt.Fprintln(w, "first_cookie is not set successfully." ,err)
}
ca := r.Cookies()
fmt.Fprintln(w, c1)
fmt.Fprintln(w, ca)
}

func main() {
server := http.Server{
Addr: "127.0.0.1:2020",
}
http.HandleFunc("/set_cookies", setCookies)
http.HandleFunc("/get_cookies", getCookies)
server.ListenAndServe()
}

当我尝试在 chrome 浏览器中获取 cookie 时,通过调用 set_cookies 设置 cookie 后,我得到以下输出:

first_cookie is not set successfully. http: named cookie not present

[]

我读过类似的帖子,但没有一个有效。

最佳答案

您似乎没有使用有效的 cookie 名称。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie

它提到=>

cookie 名称可以是任何 US-ASCII 字符除了控制字符 (CTL)、空格或制表符。它还不得包含如下分隔符:( ) < > @ , ; :\"/[ ] ?= { }。

如果您使用 cookie 名称作为 Name: "SpiderMan" 它应该可以工作。

关于go - 无法在 header 中设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57011358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com