ln2*_*nal 43 python redirect flask
我正在使用烧瓶.我处于这样一种情况,我需要将一个post请求重定向到另一个url,保留请求方法,即"POST"方法.当我将"GET"请求重定向到另一个接受"GET"请求方法的网址时没问题.这是我正在尝试上面的示例代码..
@app.route('/start',methods=['POST'])
def start():
flask.redirect(flask.url_for('operation'))
@app.route('/operation',methods=['POST'])
def operation():
return "My Response"
Run Code Online (Sandbox Code Playgroud)
我想对"/ start"url发出"POST"请求,内部也向"/ operation"url发出"POST"请求.如果我修改代码,就像这样,
@app.route('/operation',methods=['GET'])
def operation():
return "My Response"
Run Code Online (Sandbox Code Playgroud)
代码适用于"GET"请求.但我也希望能够发出POST请求.
mde*_*ous 90
默认情况下,redirect
提供的功能会向Flask
客户端发送302状态代码,如维基百科上所述:
许多Web浏览器以违反此标准的方式实现此代码,将新请求的请求类型更改为GET,而不管原始请求中使用的类型(例如POST).[1]为此,HTTP/1.1(RFC 2616)添加了新的状态代码303和307以消除两种行为之间的歧义,其中303强制要求将请求类型更改为GET,并且307保留最初发送的请求类型.
因此,发送307状态代码而不是302应该告诉浏览器保留使用的HTTP方法,从而具有您期望的行为.你的电话redirect
会是这样的:
flask.redirect(flask.url_for('operation'), code=307)
Run Code Online (Sandbox Code Playgroud)