如何在flask中响应OPTIONS请求设置自定义标头?

时间:2020-04-22 23:51:29

标签: python flask http-headers http-options-method

我想在Flask中实现WebDAV服务器。

服务器收到OPTIONS个HTTP请求时,必须发回标头DAV: 1的响应。

但是,我没有这样做...

这是我的Flask应用

from flask import Flask, make_response

app = Flask(__name__)

@app.route("/")
def options(methods=["GET", "OPTIONS"]):
    resp = make_response("hello")
    resp.headers['DAV'] = '1'
    return resp

当我发送GET请求时,标头已正确设置:

curl -i -X GET http://127.0.0.1:5000/
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 5
DAV: 1
Server: Werkzeug/1.0.1 Python/3.8.1
Date: Wed, 22 Apr 2020 23:38:51 GMT

但是当我发送OPTIONS请求时,标头丢失了:

curl -i -X OPTIONS http://127.0.0.1:5000/
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Allow: OPTIONS, GET, HEAD
Content-Length: 0
Server: Werkzeug/1.0.1 Python/3.8.1
Date: Wed, 22 Apr 2020 23:38:54 GMT

(我们注意到响应主体也丢失了。但这很好,我暂时不需要)

如何更改此默认行为?

(我将Flask 1.1.2与Python 3.8.1结合使用)

0 个答案:

没有答案