golang如何删除cookie?

golang如何删除cookie?

网上都说把MaxAge设置0,就行, 但我执行下面2句话:

cookie, _ := r.Cookie("c2c_username")
cookie.MaxAge = 0

在ie中报错;在chrome中不起作用;

有哪位高手帮帮忙,不甚感激!

共 3 个回复


snake117

你这写法很奇怪啊,是在golang里的?go里没有Cookie方法啊,CookieJar接口只有Cookies方法,返回的是[]*http.Cookie

# 0

jjjachyty

Expires: time.Now().AddDate(-1, 0, 0)

# 1

styx11

观察到的现象:

我们在一个路径如:"/login" 的 handler 下设置一个cookie

cookie := &http.Cookie{}
cookie.Name = "foo"
cookie.MaxAge = 10
cookie.Path = "/"

http.SetCookie(w, cookie)

这时想要在别的路径 handler 下修改同名的cookie.MaxAge是行不通的,只能在原路径 handler 下设置,比如加一个 signout 的 query:

signout := req.FormValue("signout")
if signout != "" {
    cookie.MaxAge = -1
}

这时可以看到 cookie 被删除了
希望能帮到你:)

# 2