请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师你好,问下cookie的问题

我用beego框架做了一个自己的博客,前端用react做的。我想用cookie记录用户ID。后端生成cookie,然后存在前端。但是cookie一直无法生成,我就很懵逼了。
代码如下:
c.Ctx.SetCookie(“ceShi”, “hlhl”)
fmt.Println(“cookie:”, c.Ctx.GetCookie(“ceShi”))
我在别人的项目里测试是能获取到的,但是我的项目无法获取,是我配置有问题吗?然后我尝试了在发送请求前设置cookie

if user, err := models.NewUser().Login(userName, passWord); err == nil {
u.Data[“json”] = common.ResultHandle(user, nil)

	//登录成功之后设置加密的cookie
	remember.UserId = user.UserId
	remember.Time = time.Now()
	//v, _ := utils.Encode(remember)
	//u.SetSecureCookie(common2.AppKey(), "login", v, 24*3600*365)
	u.Ctx.SetCookie("login", string(user.UserId), 24*3600*365)
	
} else {
	fmt.Println("登录错误", err)
	u.Data["json"] = common.ResultHandle(nil, err)
}

u.ServeJSON()

然后前端登录之后同样获取不到设置的login的cookie值。

正在回答 回答被采纳积分+3

2回答

自由编程 2020-05-08 16:01:52

主要先确定好,设置cookie是在http请求的哪一步出的问题,是前端还是后端,然后再找具体原因

0 回复 有任何疑惑可以回复我~
自由编程 2020-05-08 16:00:55

先提供一个思路,
1 先看看server的response包头里面有没有setcookie字段?
2 可以用浏览器插件看看页面里面有没有存cookie
3 再看请求是不是带cookie头了
这个问题感觉像是react做了啥了吧

0 回复 有任何疑惑可以回复我~
  • 谢谢老师的回答,然后我现在已经处理好了。我查看了浏览器中headers发现后端已经把cookie交给前端了。但是因为跨域问题导致前端无法把cookie传递给后端。然后我设置了前后端允许跨域就解决了。但是为啥跨域无法传递cookie我还不理解,老师知道的话,请告诉我一下
    回复 有任何疑惑可以回复我~ 2020-05-08 17:06:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信