Удалить заголовок в ответе django. - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь удалить заголовок Server из ответа django rest framework, но я не нашел простого способа, поэтому я создаю промежуточное ПО для его удаления.

Это моя первая попытка:

middleware.py

class RemoveHeaders(object):
    def process_response(self, request, response):
        response['Server'] = ''
        return response

Это промежуточное ПО работает нормально, но проблема в том, что он заполняет заголовок server пустой строкой и не удаляет его.поэтому я попробовал следующее:

class RemoveHeaders(object):
    def process_response(self, request, response):
        del response['Server']
        return response

Но это не работает.Заголовок server продолжается.

Как удалить заголовок server? Или вы знаете другую альтернативу?спасибо

Обновлено , это мои промежуточные программы, может быть, кто-то переопределил заголовок server, если он не существует?

MIDDLEWARE_CLASSES = (
    'corsheaders.middleware.CorsMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'my_api.middleware.RemoveHeaders'
)

1 Ответ

0 голосов
/ 07 февраля 2019

У меня точно такая же проблема.Ваш подход с

del response['Server']

верен!

Однако вам необходимо переместить ваше промежуточное ПО, чтобы быть первым.Как и другие промежуточные программы будут добавлять заголовки после построения ответа, порядок приложений снизу вверх.Ваше промежуточное ПО должно быть первым с последним словом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...