请求正文未从 axios get 调用传递到 Django Rest Framework

IT技术 django reactjs django-rest-framework axios postman
2021-05-14 06:54:43

我在 axios 中发送带有正文的 get 请求时遇到问题。它不会将请求的正文传递给后端。

Axios 代码如下所示

const FunctionName = (environment, page_num) => {

    axios.get(API_URL, 
            { params: 
              {
                 environment,
                 page_num
              },

            }).then(res => {
                console.log(res);
            }).catch(err => {
                console.log(err.response.data);
            });
}

我使用 Django 作为我的后端,我收到了空正文,即 {},这会导致发送到后端的错误请求。我经历了几个堆栈溢出问题,但没有一个对我有帮助。任何人都可以帮我解决这个问题。

更新

我的 Django 代码如下所示

class TestView(APIView);
    def get(self, request):
       environment = request.data['environment']
       page_num = request.data['page_num'] 
       ...
       ...

在这里,当我无法获取环境或 page_num 数据时。当我从邮递员发送带有 get 调用和正文请求中的内容的相同请求时,它接受并将响应发回。

重新更新

我注意到我们必须使用 request.query_params['some_val'] 以防我们在来自 Axios 的请求中传递正文,但是如果我们在邮递员中发送带有正文的请求,则 request.query_params['some_val'] 将不起作用。我不确定这是否是正常行为!

2个回答

我不确定,但试试这个:

axios({
  method: "get",
  url: API_URL,
  body: {
    environment,
    page_num
  }
}).then(res => console.log(res.data)); 

在 Django 中,您是否尝试使用 request.body

任何遇到此问题的人都可以在下面的链接中找到答案。

可能重复 如何在 django rest 框架中访问获取请求数据