我有这样的设置:
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
]
}这一观点:
class Config(APIView):
def get(self, request, *args, **kwargs):
if 'config' in request.GET.dict():
if os.path.isfile(settings.CONFIG):
yaml = read_config(settings.CONFIG)
return Response(yaml)
else:
return Response({
"success": False,
"error": "config file not found!"})
else:
return Response({"success": False})
def post(self, request, *args, **kwargs):
if 'data' in request.data:
print(request.data['data'])
return Response({"success": False})使用axios,我管理api调用,例如:
axios.post('api/config/?config', { data: obj, headers: { Authorization: 'Bearer ' + rootState.auth.jwtToken } })现在的问题是,我不能发布数据。我收到一个未经授权的 (401)错误,在响应消息中写着:{"detail":"Authentication credentials were not provided."}
你能告诉我,我在这里缺少的是什么吗?我如何解决这个问题?
发布于 2020-04-09 22:01:30
AUTH_HEADER_TYPES in settings.py是什么?持票人或JWT。如果是JWT,则必须更改header auth类型。
2-您提供身份验证并获得令牌了吗?
解决方案:
Axios请求假定第二个参数是数据,第三个参数是config。您在第二个参数中发送了标头。您可以在配置中设置标题。
axios.post(url, data, config)将axios.post更改为:
axios.post('api/config/?config', { data: obj }, {
headers: { Authorization: 'Bearer ' + rootState.auth.jwtToken }})https://stackoverflow.com/questions/61130277
复制相似问题