Тело запроса не передается из axios get call в Django Rest Framework - PullRequest
0 голосов
/ 01 октября 2019

У меня возникла проблема при отправке запроса на получение с телом в axios. Он не передает тело запроса бэкэнду.

Код 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'] не будет работать, если мы отправим запрос с телом в postman. Я не уверен, что это нормальное поведение или нет!

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Любой, кто сталкивается с проблемой, может найти ответ ниже по ссылке.

Возможный дубликат Как получить доступ к данным запроса в django rest framework

0 голосов
/ 01 октября 2019

Я не уверен, но попробуйте это:

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

В Django, вы пытаетесь получить тело с request.body

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