Django не извлекает данные из fetch () - PullRequest
0 голосов
/ 02 ноября 2019

Я использую fetch(), чтобы совершить ajax-вызов на мой сервер. request.POST возвращает пустое значение QueryDict, а request.body возвращает мои фактические данные. Почему я делаю не так?!?

Вот мой код js:

fetch(url, {
            method: "post",
            credentials: 'same-origin',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'X-CSRFToken': csrftoken,
                'X-Requested-With': 'XMLHttpRequest'
            },
            body: JSON.stringify(data)
        })
            .then(async res => ({
                status: res.status,
                body: await res.json(),
                isOk: res.ok
            }))

Ответы [ 2 ]

0 голосов
/ 02 ноября 2019

request.POST для данных формы. Но вы не отправляете данные формы;Вы отправляете JSON. Таким образом, QueryDict отсутствует, а request.POST правильно остается пустым.

0 голосов
/ 02 ноября 2019

Я думаю, что ваш вопрос покрыт документами : в основном POST only содержит данные формы. Файлы и другие неформальные данные находятся в атрибутах FILE и body соответственно.

...