Execute模板后setCookie失效?

eleecn · · 2130 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

刚开始学GO,遇到这样的情况: t, err := template.ParseFiles("/template/login.tpl") err = t.Execute(w, nil) //如果先执行 http.SetCookie(。。。)//失败,浏览器无法收到cookie 如果调换顺序,先setCookie,再Execute,便可成功设置cookie。 计划是在登陆页面login.tpl,ParseForm( )获取用户名和密码,验证合格以后才发放sessionID,如果反着写,虽然也能办到,但ParseForm( )和验证环节跑到了模板Execute前面: r.ParseForm( ) //模板还未加载,先ParseForm( )居然也成功通过 email := r.FormValue("email") pass := r.FormValue("pass") var loginPass = checkLogin(email, pass) //验证用户名和密码 if loginPass == true { //用户名密码正确 cookie1 := http.Cookie{Name: "test", Value: "testvalue", Path: "/", MaxAge: 86400} http.SetCookie(w, &cookie1) //成功设置cookie fmt.Println("登录成功: ", email) } else { fmt.Println("请登录: ", email) } t, err := template.ParseFiles("/template/login.tpl") err = t.Execute(w, nil) //模板必须放到后面加载 请问为什么必须这样反着写啊? 初学GO,多谢大家的关注,还请不吝赐教!

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2130 次点击  
加入收藏 微博
2 回复  |  直到 2016-03-17 20:31:22
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传