我在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)
我的预期结果是一个肯定的答案,但是每当我投入生产时,我都会不断收到此错误。
答案 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,)