2016-08-02 8 views
1

なぜ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'" 

どこに問題があるのか​​知っていますか?

+1

はあなたがIDを取得しますあなたのAJAXヘッダにcontentType: "application/json", dataType: "json",を追加するとき、 'はconsole.log(reservation_id);'クリックで? – jakob

+0

$(this).data( 'reservation_id')の値を取得している場所。 – Vijai

答えて

0

てみ

data:{'reservation_id':reservation_id}, 
+0

いいえ、問題は同じです。奇妙な.. –

関連する問題