2016-05-18 2 views
0

Ajaxコード:AjaxはDjangoで動作していませんか?

$(".addtofavourite").click(function (event) { 
    event.preventDefault(); 
    var bid = $(this).attr('id'); //integer value 
    var email = $("#userEmail").val(); 
    alert(bid + " " + email); 
    $.ajax({ 
     type: "POST", 
     url: "/ajax/userfavourite/", 
     data: { 
      'BID': bid, 
      'EmailID': email 
     }, 
     contentType: "application/json; charset=utf-8", 
     success: function (data) { 
      alert(data); 
     }, 
     failure: function (response) { 
      alert(response.d); 
     }, 
     error: function (jqXHR, textStatus, errorThrown) { 
      alert(textStatus, errorThrown); 
     } 

    }); 
}); 

Views.py:

def userfavourite(request): 
    if request.method == 'POST': 
     email = request.POST['EmailID'] 
     bid = request.POST['BID'] 
     uid = UserInfo.objects.values("UID").filter(email__exact=email) 
     userfav = UserFavourite.objects.filter(UID=uid, BID=bid) 
     if not (userfav): 
      userfav = UserFavourite(UID=uid, BID=bid) 
      userfav.save() 
      data = serializers.serialize("json", "True") 
      return HttpResponse(data, content_type='application/json') 

     else: 
      data = serializers.serialize("json", "False") 
      return HttpResponse(data, content_type='application/json') 
    else: 
     data = serializers.serialize("json", "False") 
     return HttpResponse(data, content_type='application/json') 

Idon'tはAjaxが常にalert.Whatにエラーを返し、なぜエラーが私のコードである知っていますか?私は見返りに真実か偽かを見たいと思っていて、画面に印刷したいと思っています。

+0

で詳細に説明されていますか? – Anoop

+0

アラートに「エラー」が表示されます。 – Amit

答えて

0

デフォルトでは、セキュリティ対策として、djangoはCSRF(クロスサイトリクエスト偽造)トークンを使用してすべてのPOST要求をスクリーニングします。 そこに2つのオプションがあります。

  1. 最良の選択肢は、そうでない場合は
  2. (どちらかのクッキー情報を読み取るか、テンプレートに提供することによって、あなたがそれを見つけることができます)の要求でCSRFトークンを追加することですが可能、

あなたのAjaxのビュー(安全性が低い)でそれを無効にするcsrf_exemptデコレータを使用してどちらの方法は、アラートになっているとエラーになり何https://docs.djangoproject.com/en/1.9/ref/csrf/

関連する問題