#django #django-rest-framework #django-csrf
#django #django-rest-framework #django-csrf
Вопрос:
Уже проверил другие темы и попробовал ответы, но проблема остается по-прежнему. Мои запросы put / post возвращаются с ошибкой.
подробно: «Сбой CSRF: токен CSRF отсутствует или неверен».
Хотя я отправляю CSRFToken внутри заголовка axios.defaults.headers.common['X-CSRF-Token'] = CSRF_TOKEN;
И вот он CSRF
Кстати, в settings.py Я устанавливаю классы аутентификации
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
],
Дополнительно views.py
class ProjectViewSet(viewsets.ViewSet):
permission_classes = [IsAuthenticated | IsSuperUser]
# retrieve works without a problem
def retrieve(self, request, pk=None):
queryset = Project.objects.all().filter(company_user=self.request.user)
project = get_object_or_404(queryset, pk=pk)
serializer = ProjectSerializer(project)
return Response(serializer.data)
def update(self, request, pk=None):
# CSRF request problem
pass
def partial_update(self, request, pk=None):
# CSRF request problem
pass
и urls.py
router = DefaultRouter()
router.register('project', views.ProjectViewSet, basename='project')
urlpatterns = router.urls
Я что-то здесь упускаю? Почему у меня продолжает появляться ошибка CSRF?
Ответ №1:
Вы должны использовать X-CSRFToken
вместо X-CSRF-Token
Комментарии:
1. это сработало! Спасибо. примет это как ответ