请稍等 ...
×

采纳答案成功!

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

登录成功之后w.Write([]byte("http://" + r.Host + "/static/view/home.html"))

post方法请求登录接口/user/signin,最后验证登录正确,老师视频里面是直接用w.Write([]byte("http://" + r.Host + "/static/view/home.html"))让客户端自己跳转,但是在我这边,没有实现跳转功能,只是把http://localhost:8082/static/view/home.html这个字符串作为post的结果返回给客户端了

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

4回答

xiaomo 2019-03-24 23:03:35

麻烦检查下main.go里有没加上静态资源文件的处理逻辑了:

func main() {
    // 静态资源处理
    http.Handle("/static/",
        http.StripPrefix("/static/",
            http.FileServer(http.Dir("./static"))))
    
    // ...
}
0 回复 有任何疑惑可以回复我~
Ans217 2019-03-24 22:50:08

https://img1.sycdn.imooc.com//szimg/5c9798f200014a4322721096.jpg

我也遇到了,没跳转


0 回复 有任何疑惑可以回复我~
  • xiaomo #1
    麻烦检查下main.go里有没加上静态资源文件的处理逻辑,这个逻辑我可能漏了讲解。
    回复 有任何疑惑可以回复我~ 2019-03-24 23:12:33
提问者 杰神 2019-03-24 22:47:43

https://img1.sycdn.imooc.com//szimg/5c9797c50001510a30641370.jpg

https://img1.sycdn.imooc.com//szimg/5c9797c50001d23f19221400.jpg

第一张图里, 我直接在login按钮那注释掉原有代码的所有请求,进行window.location跳转到home页面。第二张图演示结果。在点击完按钮之后,谷歌浏览器有看到多了一个home.html的请求,并且浏览器url也有变化了。但是我的页面还是以前旧的登录页,而不是主页。我确定home.html这个页面是跟登录页内容不同的。

0 回复 有任何疑惑可以回复我~
提问者 杰神 2019-03-24 20:56:46

if r.Method == http.MethodGet {
  data, err := ioutil.ReadFile("./static/view/signin.html")
  if err != nil {
     w.WriteHeader(http.StatusInternalServerError)
     return
  }
  w.Write(data)
}

0 回复 有任何疑惑可以回复我~
  • 提问者 杰神 #1
    我看到你前面页面是这样 跳转的,就是go的ioutil.ReadFile,把./static/view/signin.html这个页面给读出来,然后作为结果,w.Write返回给前端。但是在4.3这一节里, 没有进行ioutil.ReadFile操作,直接w.Write一个页面名称,这样不能跳转的吧?
    回复 有任何疑惑可以回复我~ 2019-03-24 20:58:51
  • 提问者 杰神 #2
    我感觉像是漏了一个地方一样,直接w.Write([]byte("http://" + r.Host + "/static/view/home.html")),只是把页面路径作为字符串返回给客户端了呀,怎么能跳转呢
    回复 有任何疑惑可以回复我~ 2019-03-24 21:00:14
  • xiaomo 回复 提问者 杰神 #3
    浏览器里signin.html里接收到返回后,通过:
    window.location.href = "http://localhost:8080/static/view/home.html"";
    就可以实现页面的跳转了。
    回复 有任何疑惑可以回复我~ 2019-03-24 22:31:48
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号