2017-12-22 19 views
1

私はDRFとAxiosを使用してデータを投稿しようとしています。私はこれまで同じ結果、403(禁じられている)を使って、いくつかの異なるオプションを試しました。 axios.getを使用してデータを取得できますが、データを投稿することはできません。私は安心して新しいことをやっているので、明らかに何か謝罪しています。Django Restと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

​​

シリアライザ

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

これは私が使用しているセットアップです。 2つのことがあります。ヘッダーが正しく送信されていることを確認する必要があります。

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', 
... 
} 
関連する問題