Django不会从fetch()中提取数据

时间:2019-11-02 15:29:11

标签: javascript django ajax fetch-api

我正在使用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 :(得分:1)

我认为您的问题已包含在the docs中:基本上,仅 帖子包含表单数据。文件和其他非格式数据分别位于FILE和body属性中。

答案 1 :(得分:1)

request.POST用于表单数据。但是,您不是在发送表单数据。您正在发送JSON。因此没有QueryDict,并且request.POST正确保持为空。