なぜAJAXがPOSTでパラメータを送信しないのかわかりません。私は@csrfexempt
を使用してview
を装飾しましたが、現在は何もパラメータを送信していないので、おそらくCSRFTOKENのために403エラーを返しました。AJAXポストはパラメータを送信しません
$(document).ready(function(){
var cancel_reservation = $('.cancel-reservation');
var confirm_reservation = $('.confirm-reservation');
var reservation_id = $(this).data('reservation_id');
cancel_reservation.on('click',function(e){
e.preventDefault();
$.ajax({
type: "POST",
url:'/ajax/reservation/cancel/',
data:{reservation_id:reservation_id},
success:function(){
alert('canceled');
}
});
})
});
VIEW
@csrf_exempt
def reservation_cancel(request):
print request.POST
id = request.POST['reservation_id']
va_models.Reservation.objects.get(id=id).delete()
return JsonResponse({'status_code': 'success'})
print request.POST
プリント<QueryDict: {}>
と
request.POST['reservation_id']
が提起:
raise MultiValueDictKeyError(repr(key)) MultiValueDictKeyError: "'reservation_id'"
どこに問題があるのか知っていますか?
はあなたがIDを取得しますあなたのAJAXヘッダに
contentType: "application/json", dataType: "json",
を追加するとき、 'はconsole.log(reservation_id);'クリックで? – jakob$(this).data( 'reservation_id')の値を取得している場所。 – Vijai