首页 > 解决方案 > 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=201Responce构造来做到这一点)。

任何帮助将不胜感激。

编辑 1:在代码中添加了一些内容。这里描述的解决方案对我也不起作用。尝试了Responsemake_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'

标签: pythonhttpflask

解决方案


我认为问题在于,尽管您正在添加自定义标头,但您仍然返回一个 JSON 对象,您在其中编写resp = Response(jsonify(data)). 烧瓶可能会根据响应正文的格式自动分配响应标头。


推荐阅读