为了账号安全,请及时绑定邮箱和手机立即绑定

http.Redirect 不起作用

http.Redirect 不起作用

Go
红颜莎娜 2021-12-07 10:27:23
我是新手,我正在尝试在登录后进行重定向。对于路由器,我使用的是 Mux:router.HandleFunc("/login", pages.Login).Methods("POST")并且登录功能包含以下几行:if errorFlag {    http.Redirect(rw, rq, "/", http.StatusNotAcceptable)} else {    http.Redirect(rw, rq, "/", http.StatusOK)}事情是,我根据 errorFlag 获得了正确的状态,但页面没有重定向!标题似乎也设置正确(“位置:/”)但不是重定向,页面只是保持空白并保留在“/登录”下我已经在 Chrome 和 FF 上测试过了。这些是响应头:Content-Length:0Content-Type:text/plain; charset=utf-8Date:Thu, 14 Jan 2016 16:52:34 GMTLocation:localhost:8000/Set-Cookie:user=MTQ1Mjc5MDM1N...; Path=/; Expires=Sat, 13 Feb 2016 16:52:34 UTC; Max-Age=2592000以前有人遇到过这个吗?更新如下所示,此更改有效:if errorFlag {    http.Redirect(rw, rq, "/", http.StatusTemporaryRedirect)} else {    http.Redirect(rw, rq, "/", http.StatusFound)}谢谢!
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

使用 3xx 状态代码重定向客户端(http.StatusFoundhttp.StatusMovedPermanently、 http.StatusSeeOther ,...)。Location 标头不足以导致重定向。


查看完整回答
反对 回复 2021-12-07
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

您正在尝试重定向 POST 方法,因此 301 (StatusMovedPermanently) 和 302 (StatusFound) 都不应该根据 W3.org 工作。

如果您想使用 GET 方法重定向,请尝试返回 303 (StatusSeeOther)。如果您想使用与请求中相同的方法进行重定向,请尝试返回状态 307 (StatusTemporaryRedirect)。

详情请见:https : //softwareengineering.stackexchange.com/questions/99894/why-doesnt-http-have-post-redirect


查看完整回答
反对 回复 2021-12-07
  • 2 回答
  • 0 关注
  • 265 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信