添加@app.after_request后Flask-CORS触发AttributeError错误求助
Flask after_request导致Flask-CORS AttributeError的原因与修复
错误根源
这个问题其实是个典型的Flask钩子函数使用误区:@app.after_request装饰的函数必须返回一个HTTP响应对象,但你的代码最后返回了True,把原本的响应对象替换成了布尔值。
Flask的请求处理流程中,after_request钩子会在视图返回响应后被调用,目的是让你可以修改响应内容或添加额外处理,之后需要把响应传递给后续的中间件(比如Flask-CORS的跨域处理逻辑)。当你返回True时,后续中间件拿到的是布尔值,而非合法的响应对象,Flask-CORS尝试访问它的headers属性自然就会触发AttributeError。
修复方案
只需要修改audit_trail函数的返回值,确保始终返回传入的response参数:
@app.after_request def audit_trail(response): if request.method != 'OPTIONS': # 保留你原本的审计逻辑 print('Bye') # 关键:返回响应对象,而非布尔值 return response
修改后,Flask-CORS就能正常拿到响应对象并处理跨域header,错误就会消失了。
内容的提问来源于stack exchange,提问作者Alexis.Rolland
相关产品推荐
相关产品推荐

