【问题标题】:AJAX post doesn't send parametersAJAX 帖子不发送参数
【发布时间】: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');

标签: jquery ajax django post


【解决方案1】:

试试

data:{'reservation_id':reservation_id},

【讨论】:

    【解决方案2】:

    尝试将contentType: "application/json", dataType: "json", 添加到您的 ajax 标头

    【讨论】:

      猜你喜欢
      • 2019-12-16
      • 1970-01-01
      • 2021-05-02
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      相关资源
      最近更新 更多