POST 请求重定向到其它页面时, 如何改变成 GET 请求?

2014-10-20 17:02:36 +08:00
 dddd
比如说用户登录成功了,将其重定向到另一个页面(可以发表文章)。

用的 Python WSGI,通过 REQUEST_METHOD 和 PATH_INFO 判断该如何进行 start_response 以及返回那些数据,问题是我的 GET 请求的页面重定向能成功,可是 POST 之后再重定向,就会一直在加载,无法重定向...

如下:
if request_method == 'GET':# POST 一样
____if page.path.match(path_info):
________...
________start_response(xxx,xxx)
________return [page.data_for_get()] # page.data_for_post()
12421 次点击
所在节点    Python
9 条回复
ipconfiger
2014-10-20 17:44:10 +08:00
Flask的话直接redirect就可以了
dddd
2014-10-20 19:03:41 +08:00
@ipconfiger
不用第三方框架,除了模板引擎
shajiquan
2014-10-21 15:46:05 +08:00
加个 HTTP 状态码 302 ?然后浏览器应该会处理你的跳转。
dddd
2014-10-21 15:56:25 +08:00
@shajiquan
301,302,303都试了。。。
我得看看我的代码逻辑是不是出问题了
MasterYoda
2014-10-21 16:11:23 +08:00
response = Response(
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n'
'<title>Redirecting...</title>\n'
'<h1>Redirecting...</h1>\n'
'<p>You should be redirected automatically to target URL: '
'<a href="%s">%s</a>. If not click the link.' %
(escape(location), display_location), code, mimetype='text/html')
response.headers['Location'] = location
return response
这里的response是werkzeug的wrapper里的。
shajiquan
2014-10-21 16:52:09 +08:00
@dddd 加油。别忘了 headers 里的 Location。
dddd
2014-10-22 09:29:36 +08:00
@shajiquan
正解

@MasterYoda
再加上你的防止重定向不成功
shajiquan
2014-10-22 11:34:09 +08:00
@dddd Cool!
ryd994
2014-10-23 07:19:44 +08:00
重定向的method不变吧……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/140271

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX