Джанго Отдых и Аксиос

Я пытаюсь разместить данные, используя DRF и Axios. До сих пор я пробовал пару разных вариантов с тем же результатом, 403 (Запрещено). Я могу получить данные с помощью axios.get, но не могу опубликовать данные. Я новичок в отдыхе и использую ajax, поэтому прошу прощения, если это что-то очевидно.

Аксиос звонок

return axios({
                method: 'post',
                url: "/schedules/",
                data: {
                    "emp": this.emp.emp,
                    'start_time': this.startTime,
                    "end_time": this.endTime,
                    "date": this.today,
                    "location": this.location
                },
                xsrfHeaderName: "X-CSRFToken",
                responseType: 'json'
              })

Settings.py

CSRF_COOKIE_NAME = "XSRF-TOKEN"

Serializer

class SchedSerializer(serializers.ModelSerializer):

    class Meta:
        model = Schedule
        fields = (
            'location',
            'emp',
            'date',
            'start_time',
            'end_time'
        )

Посмотреть

class SchedViewSet(viewsets.ModelViewSet):
    queryset = Schedule.objects.all()
    serializer_class = serializers.SchedSerializer

1 ответ

Это настройка, которую я использую, которая работает. Есть две вещи, вам нужно убедиться, что ваш заголовок отправляется правильно.

HTTP.defaults.headers.post['x-csrftoken'] = {{csrf_token}};
HTTP.post('django-url/', {"id":id,"value":resp})

Я смог решить эту проблему с помощью https://github.com/ottoyiu/django-cors-headers. Убедитесь, что ваш csrf_token заполнен правильно, а затем убедитесь, что вы разрешаете передавать нужные заголовки приложению django в settings.py:

CORS_ALLOW_HEADERS = (
...
    'x-csrftoken',
...
}
Другие вопросы по тегам