Как установить настраиваемый заголовок в ответ на запрос OPTIONS в flask? - PullRequest
0 голосов
/ 23 апреля 2020

Я хочу внедрить сервер WebDAV в Flask.

При получении 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)

...