发出POST请求时,我收到“没有提供凭据响应”

时间:2019-04-22 13:25:00

标签: django react-native django-rest-framework fetch

我在Linode上运行了一个django服务器,我正在尝试发出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)

我的预期结果是一个肯定的答案,但是每当我投入生产时,我都会不断收到此错误。

Server Response

2 个答案:

答案 0 :(得分:0)

如果您在生产模式下将Apache用作Web服务器,则应将WSGIPassAuthorization设置为'On'。

看看这个链接,

Django Rest Framework {"detail":"Authentication credentials were not provided."}

答案 1 :(得分:0)

我可以通过在Django视图上添加以下内容来解决此问题:

class DataViewSet(viewsets.ModelViewSet):

queryset = UserData.objects.all()
serializer_class = DataSerializer
authentication_classes = [TokenAuthentication, SessionAuthentication]
permission_classes = (IsAuthenticated,)