Есть форма
<form class="f-basket" action="{% url 'add_basket' %}">{% csrf_token %}
Сколько?
<input type="number" class="number">
<button type="submit" class="submit_btn" data-text = "Здесь просто текст">Отправить</button>
</form>
Есть jquery код
$(document).ready(function(){
var form = $('.f-basket');
form.on('submit', function(preventdefault){
preventdefault.preventDefault();
var submit_btn = $('.submit_btn');
var text = submit_btn.data("text")
var nmb = $('.number').val();
console.log(text, nmb)
var data = [];
data.text = text
data.nmb = nmb;
var csrf_token = $('.f-basket [name="csrfmiddlewaretoken"]').val();
data["csrfmiddlewaretoken"] = csrf_token;
var url = form.attr("action");
console.log(url)
console.log(data)
$.ajax({
url: url,
type: 'POST',
data: data,
cache: true,
success: function () {
console.log("OK");
},
error: function(){
console.log("error");
}
})
$('.basket-container ul').append('<li>'+text+ ' в количестве '+ nmb +
'<a class="delete-item" href="#">x</a>'+ '</li>');
});
$(document).on('click', '.delete-item', function(preventdefault){
preventdefault.preventDefault();
$(this).closest('li').remove();
})
});
И есть представление
def add_basket(request):
return_dict = dict()
session_key = request.session.session_key
if not session_key:
request.session.cycle_key()
print(request.POST)
return JsonResponse(return_dict)
В консоли браузера выводятся все дата, однако показывает что сервер не обрабатывает запрос и в браузере выбивает error, в консоли django пишет что csrf токен потерян или не правильный, однако в браузере вместе с другими данными токен тоже выдается, в чем тут проблема?