Я пытаюсь отправить запрос POST из шаблона Vue. js в мой API, созданный с помощью Django. При отправке я получаю токен 403 CSRF, отсутствующий или ошибочный. Поскольку я разделил переднюю и заднюю части, у меня нет вида с {csrf_token} на стороне Django.
Как мне отправить мою форму?
Я попробовал несколько примеров в Интернете, используя куки, но я новичок и мне нужно больше объяснений о теме POST и CSRF
У меня есть представление Djano View (и связанные с ним URL-адреса), например:
def get_csrf_token(request):
token = get_token(request)
return JsonResponse({'token': token})
Whe Я запрашиваю URL, получил JSON с токеном.
А на лицевой стороне я использую этот метод для получения токена:
getToken: function() {
this.loading = true;
this.$http.get('/qualite/get-token/')
.then((response) => {
this.token =response.data;
this.loading = false;
})
.catch((err) => {
this.loading = false;
console.log(err);
})
},
addNc: function() {
let headers = {
'Content-Type': 'application/json;charset=utf-8'
};
if(this.token !== '') {
headers['HTTP_X-XSRF-TOKEN'] = this.token
}
this.loading = true;
this.$http.post('/qualite/api/nc/',this.newNc, {headers: headers})
.then((response) => {
this.loading = false;
})
.catch((err) => {
this.loading = false;
console.log(err)
})
},