Когда я делаю POST-запрос, я получаю сообщение «Учетные данные не предоставлены» - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть сервер django, работающий на Linode, я пытаюсь сделать POST-запрос, но все, что я получаю, это detail:"Authentication credentials were not provided."

Я уже проводил исследования и всякий раз, когда сервер работает, (порт 80), он не работает, как только я делаю ./manage.py runserver 0.0.0.0:8000, он работает, когда я указываю свою выборку на этот URL.

fetch(URL,
  method ='POST',
  headers = {
    'Authorization': `Token ${this.props.token}` ,
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
  body= JSON.stringify( {
    user: 10,
        voltage_coil_1: 1,
        voltage_coil_2: 1,
        voltage_generated_by_user: 1,
        activity:1,
        datetime:null
})
)
  .then(res => res.json())
  .then(console.log)

Мои ожидаемые результаты - положительный ответ, но всякий раз, когда я работаю, я получаю эту ошибку.

Ответ сервера

Ответы [ 2 ]

0 голосов
/ 27 апреля 2019

Я мог бы решить эту проблему, добавив следующее на мой взгляд на Django:

class DataViewSet(viewsets.ModelViewSet):

queryset = UserData.objects.all()
serializer_class = DataSerializer
authentication_classes = [TokenAuthentication, SessionAuthentication]
permission_classes = (IsAuthenticated,)
0 голосов
/ 22 апреля 2019

Если вы используете Apache в качестве веб-сервера в производственном режиме, вам следует установить для WSGIPassAuthorization значение «Вкл.»

Взгляните на эту ссылку,

Django Rest Framework{"detail": "Учетные данные аутентификации не были предоставлены."}

...