栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Go Web服务器自动重定向POST请求

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go Web服务器自动重定向POST请求

解释很简单:因为

"/myurl/"
注册时使用了路径
PHandler
(请注意末尾有斜杠
/
!),但您却将浏览器定向到了
/myurl
(请注意没有后缀正斜杠)。默认情况下,
http
程序包实现将执行(发送回)重定向请求,因此,如果浏览器遵循该重定向请求(它将执行),则新URL将匹配注册的路径。

记录在类型

http.ServeMux

如果已经注册了一个子树,并且接收到一个命名该子树根的请求而没有其后斜杠,则ServeMux将该请求重定向到该子树根(添加后斜杠)。
可以用单独的路径注册来覆盖此行为,而不必使用斜杠。例如,注册“ / images /”会使ServeMux将对“ / images”的请求重定向到“ /
images /”,除非已单独注册了“ / images”。

如果您将浏览器直接

/myurl/
定向到,则不会遇到重定向。

或者,如果您不需要处理有根的子树,而只需要处理一个路径(例如

/myurl
),则仅将处理程序注册到该路径:

http.HandleFunc("/myurl", PHandler)

然后,当然将您的浏览器

/myurl
定向到,也不会遇到任何重定向。

…或者如文档所示:如果确实需要,请注册到处理程序的两个路径:

http.HandleFunc("/myurl", PHandler)http.HandleFunc("/myurl/", PHandler)

现在,无论您调用(

/myurl
/myurl/
)哪个路径,两者都将导致调用处理程序而不会发生任何重定向。

笔记:

在您将重定向发送回浏览器的情况下,浏览器将不会重复POST请求(而只会重复“简单” GET请求)。

一般而言,浏览器不会将POST数据发送到重定向URL,因为该浏览器没有资格决定您是否愿意将要发送的数据发送到新URL(打算将其发送到原始URL)(请考虑密码,信用卡号和其他敏感数据)。但不要试图绕过它,只需使用处理程序的注册路径(POST到)或上述任何其他技巧即可。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369199.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号