1.背景
昨天在练习一个Django功能时,把form的method设置为POST,但是实际提交时,一直是GET方法。最后发现这是与多语言相关,django前面的多语言设置,会自动加上语言的路径,从而有了重定向这个操作,把POST变成了GET。
2.思路
对于昨天的问题,今晨继续搜索,找到一篇相关的博文,
记录一次nginx重定向以后POST请求变为GET请求的解决【转发】_302重定向成get请求-CSDN博客
这里面提到:
有缓存的301和308,浏览器在接收一次重定向以后,会缓存重定向的地址,以后请求会直接访问重定向的地址;
同时301-302-303的重定向会将请求方法改为使用GET请求
而308-307不会,所以我将nginx的重定向更改为307
3.寻找 Find and Replace
使用Find and Replace这个小工具,可以搜索文件内容,非常好用。
打开response.py文件,搜索302
修改并保存:
4.再次运行程序,POST来了
5.小结
- 修改源码这种事,尽量少做。必要的时候,还是得做。
- 博文记录,随时记录,如果没有其他人的博文,也很难找到思路。
版权归原作者 坐忘3GQ 所有, 如有侵权,请联系我们删除。