2017-12-22 6 views
1

DRF 및 Axios를 사용하여 데이터를 게시하려고합니다. 지금까지 403 (금지 된) 같은 결과로 몇 가지 다른 옵션을 시도했습니다. axios.get을 사용하여 데이터를 가져올 수 있지만 데이터를 게시 할 수는 없습니다. 나는 휴식을 취하고 아약스를 사용하는 것을 처음 접했기 때문에 사과해야한다.Django Rest and Axios

Axios의 호출

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" 

시리얼

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 

답변

0

이것은 내가 사용하고있는 설정입니다. 두 가지가 있습니다. 헤더가 올바르게 전송되는지 확인해야합니다.

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이 올바르게 채워 졌는지 확인한 다음 settings.py에서 django 앱에 적절한 헤더를 전달할 수 있는지 확인하십시오.

CORS_ALLOW_HEADERS = (
... 
    'x-csrftoken', 
... 
}