Как получить параметры сообщения Django

Я отправляю данные из Javascript следующим образом:

  let payload = {
                cmd: document.getElementById('cmdInput').value
            }
            console.log('Sending payload', payload)

            fetch('/runNgen/',
                {
                    method: "POST",
                    body: JSON.stringify(payload),
                    headers: {
                        "Content-Type": "application/json"
                    }
                })

Операция Post вроде бы работает. Но на стороне Django у меня

@api_view(['POST'])
def run_ngen(request):
    print("params", request.POST.keys())

и параметры пустые. Что я делаю не так?

Вы можете получить данные из HttpRequest.POST только в том случае, если HttpRequest имеет заголовок Content-Type "multipart/formdata". В противном случае вы получите пустой QueryDict.

Чтобы получить текст в теле, извлеките его из HttpRequest.body и разберите его.

import json
json.loads(request.body)#[1]

[1] This will parse text body as JSON. This will work if the text is valid JSON.

Вернуться на верх