python - Flask 无法添加自定义标头
问题描述
我正在尝试返回这样的自定义标头:
@app.route("/generate", methods=['POST'])
def generate():
# data is generated here
resp = Response(jsonify(data))
resp.headers['Access-Control-Allow-Origin'] = '*'
resp.headers['Access-Control-Allow-Credentials'] = True
return resp
但它们似乎没有出现在输出中。如此处提到的将状态代码更改为 201也无济于事(我通过添加status=201
到Responce
构造来做到这一点)。
任何帮助将不胜感激。
编辑 1:在代码中添加了一些内容。这里描述的解决方案对我也不起作用。尝试了Response
和make_response
,@app.after_request
按照建议添加 - 没有效果。唯一存在的标题是:
'Content-Type': 'application/json',
'Content-Length': '113',
'Server': 'Werkzeug/1.0.1 Python/3.7.7',
'Date': 'Fri, 08 May 2020 17:05:38 GMT'
解决方案
我认为问题在于,尽管您正在添加自定义标头,但您仍然返回一个 JSON 对象,您在其中编写resp = Response(jsonify(data))
. 烧瓶可能会根据响应正文的格式自动分配响应标头。
推荐阅读
- tomcat - 在 catalina.sh 和 setenv.sh 更改时区后,tomcat 时区没有改变
- mongodb - 左加入 group by 并在 mongoose 中有子句
- dasha - 如何将动态数据添加到短语表中?
- python - pygame 中缺少位置参数
- python - 使用 OpenCV 将 RGB 注册到具有不同分辨率和视场的热图像
- c++ - 一个函数只返回一个索引而不是两个或更多 | C++
- json - 如何使用特定数据附加 JSON 数组
- ios - 升级到 Uno.UI 3.9.7 后出现异常:FrameNavigationController 多次推送同一个视图控制器实例 PageViewController
- edmx - Business Central API 列表扩展/发布者
- java - Android dispatchKeyEvent , onKeyDown 回调不适用于手势音量控制(华为 mate 30 pro)