gpt4 book ai didi

python - 在 flask 中重定向时发出 POST 请求

转载 作者:IT老高 更新时间:2023-10-28 21:34:30 26 4
gpt4 key购买 nike

我正在使用 flask 。我处于需要将发布请求重定向到另一个保留请求方法(即“POST”方法)的 url 的情况。当我将“GET”请求重定向到另一个接受“GET”请求方法的 url 时很好。这是我正在尝试上述的示例代码..

@app.route('/start',methods=['POST'])
def start():
flask.redirect(flask.url_for('operation'))

@app.route('/operation',methods=['POST'])
def operation():
return "My Response"

我想向“/start” url 发出“POST”请求,内部也会向“/operation”url 发出“POST”请求。如果我像这样修改代码,

@app.route('/operation',methods=['GET'])
def operation():
return "My Response"

代码适用于“GET”请求。但我也希望能够发出 POST 请求。

最佳答案

Flask 中提供的redirect 函数默认向客户端发送302 状态码,如Wikipedia 中所述:

Many web browsers implemented this code in a manner that violated this standard, changing the request type of the new request to GET, regardless of the type employed in the original request (e.g. POST). [1] For this reason, HTTP/1.1 (RFC 2616) added the new status codes 303 and 307 to disambiguate between the two behaviours, with 303 mandating the change of request type to GET, and 307 preserving the request type as originally sent.

因此,发送 307 状态代码而不是 302 应该告诉浏览器保留使用的 HTTP 方法,从而获得您期望的行为。您对 redirect 的调用将如下所示:

flask.redirect(flask.url_for('operation'), code=307)

关于python - 在 flask 中重定向时发出 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15473626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com