【发布时间】:2016-08-02 22:26:36
【问题描述】:
我不明白为什么 AJAX 不在 POST 中发送任何参数。它返回了 403 错误,可能是因为 CSRFTOKEN,所以我使用 @csrfexempt 修饰了 view,但现在它不发送任何参数。
$(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');
}
});
})
});
查看
@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'"
你知道问题出在哪里吗?
【问题讨论】:
-
当你
console.log(reservation_id);点击时你会得到id吗? -
从哪里获取 $(this).data('reservation_id');