Я не могу исправить проблему с проверкой CSRF. Не могли бы вы рассказать мне, что мне нужно сделать? Это моя функция от views.py:Запрещено 403 во время проверки CSRF с запросом AJAX POST в Django
@login_required
def like_day(request):
if request.method == 'POST':
if 'day_id' in request.POST:
day_id = request.POST['day_id']
if day_id:
day = Day.objects.get(id=int(day_id))
likes = day.likes + 1
day.likes = likes
day.save()
return HttpResponse(likes)
Это AJAX запрос:
$(document).ready(function(){
$('#likes2').click(function(){
var catid;
protect
catid = $(this).attr("data-catid");
$.post('/friends_plans/like_day/', {day_id: catid}, function(data){
$('#like_count').html(data);
$('#likes2').hide();
});
});
});
Я пытался использовать @ensure_csrf_cookie
декоратора Forthe функции, но это не помогло. Я попытался добавить это в свой код:
$.ajaxSetup({
data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
});
Это тоже не помогло. Я сделал это, как описано в документации: https://docs.djangoproject.com/en/1.7/ref/contrib/csrf/ , но затем есть ошибка $.cookie
не является функцией. Чтобы справиться с этой проблемой, я загрузил плагин csrf cookie в мой статический каталог или добавлю его в свой шаблон <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
, но все тот же ошибка.