2011-12-13 11 views
0

AJAX呼び出しを使用してアプリケーション内の「Add to Favorite」ボタンを作成しようとしています。私のHTMLコードスニペットは、このためのjQueryのは、私が何をしたいのかDjangoのAJAX呼び出し完了時に、「お気に入りボタンに追加」の成功関数が呼び出されない

$("a#favorite").click(function(){ 

    var link = $(this).attr("href"); 

    $.ajax({ 
      type: "POST", 
      url: link, 
      success: function() 
      { 
      alert("Function succeeded"); 
      $("#favDiv").html("Favourites"); 
      }, 
      error: function() 
      { 
      alert("Function failed"); 
      } 
    }); 
    return false; 
}); 

ある

 {% if user.is_authenticated %} 
       <div id="favDiv"> <a id="favorite" href="/blogs/{{blog.id}}/favorite/"> Add to Favourites </a> </div> 
     {% endif %} 

あるユーザーが好みのボタンをクリックしたときに、その後のdiv内のHTMLが置き換えられなければならないということです単純なテキスト。

views.pyは、私は、データベースが更新されるボタンをクリックしたときにすべてが、正常に動作している

def favorite_blog(request,blog_id): 

    blog = get_object_or_404(Entry, pk=blog_id) 

    current_user = request.user 
    fav = favorite(user=current_user,entry = blog)  
    fav.save() 

    if request.is_ajax():  

     return_message = "Set Favourite" 
     return HttpResponse(return_message,mimetype='application/javascript') 

    else: 
     return HttpResponseRedirect(reverse('view_blog', args=(),kwargs={'blog_id': blog.id,})) 

含まれている、しかしsuccess: function()は実行しないでも可能な理由何ができるかfailure: function()もされていません。私はボタンのような別の同様のスクリプトがあり、それはうまく動作します。

+2

のはconsole.logを行いますあなたのサンプルコードに誤って入力されているかどうかは分かりませんが、成功関数とエラー関数の間にカンマがありません。 –

+0

pdbを使用すると、コードをステップ実行して、望ましくないところで実行している箇所を確認することができます。 – dm03514

答えて

2

あなたはmimetype = 'application/javascript'で応答を返すので、jQueryは応答の内容をjavascriptとして実行できると予想しており、それを黙って解析しません。

私はに「text/plainで」

デバッグヒントMIMEタイプを修正することをお勧めしますが、プレーンテキストを返しているので:完全なコールバックは、fnを追加し、引数

私は
... 
complete: function(jqXHR, textStatus){ 
    console.log(textStatus); 
    console.log(jqXHR); 
}, 
... 
+0

あなたが言ったように私はやったが、問題は依然として続く。お気に入りに追加するのと同様に、私は同じようなボタンを作成しました。そのビューは非常によく似ています。成功のjavascriptは既存のカウントに1を追加します。私はこの問題がなぜ起こっているのか理解できません – Sachin

+0

@Sachinはデバッグのヒントを確認します –

+0

あなたは尋ねたようにしましたが、何も記録されていませんでした。助言がありますか? – Sachin

関連する問題