登录
首页 >  Golang >  Go问答

使用Go语言无法创建Cookie

来源:stackoverflow

时间:2024-03-03 18:09:26 294浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《使用Go语言无法创建Cookie》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我尝试查看诸如此视频和此链接之类的视频。这里有一个非常相似的问题

我尝试了如下代码:

func articlesHandler(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Access-Control-Allow-Origin", "*")
    w.Header().Set("Access-Control-Allow-Headers", "Content-Type,access-control-allow-origin, access-control-allow-headers")
    // var cookie, err = r.Cookie("session_id")
    // // cookie not set
    // if err != nil {
    expiration := time.Now().Add(365 * 24 * time.Hour)
    cookie := &http.Cookie{Name: "session_id", Value: "123123", Expires: expiration}
    http.SetCookie(w, cookie)
    // }
    if r.Method == http.MethodGet {
        articles := Articles{
            Article{Title: "Title 1", Desc: "Desc 1"},
            Article{Title: "Title 2", Desc: "Desc 2"},
        }
        query := r.URL.Query()
        fmt.Println("All Article ENdpoint Hit with ", query.Get("id"))
        json.NewEncoder(w).Encode(articles)
    }
    if r.Method == http.MethodPost {
        formData := r.FormValue
        fmt.Println("Post call ", formData("id"))
        json.NewEncoder(w).Encode("Success")
    }
}

我可以在响应标头中看到

但我仍然无法在我的开发工具 ---> 应用程序中看到它

因此,我的服务器无法检测现有的 cookie 值。请帮忙


解决方案


如果您使用 angular,则可以选择创建代理并克服 @adrian 正在讨论的问题。

  1. 在与 package.json 相同的级别创建 proxy.conf.json。添加以下条目:
{
    "/articles": {
      "target": "http://127.0.0.1:8080",
      "secure": false
    }
}
  1. 现在,在 angular 端进行更改以将端点调用为
this.httpclient.get('/articles');
  1. 两者之一

ng服务--proxy-config proxy.conf.json

使用以下条目更新 package.json

"scripts": {
    "start": "ng serve --proxy-config proxy.conf.json",

然后做:

npm 启动

并使用 http://127.0.0.1:4200/ 而不是 http://localhost:4200

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>