2016-04-10 9 views
0

Django 1.9.5 ブラウザのコンソールでボタンを押すと、「http://127.0.0.1:8000/encrypt [HTTP/1.0 403 Forbidden4мс]」というエラーメッセージが表示される 問題点は何ですか?Django 403 forbidden

home.html

$(document).ready(function() { 
    $("#encrypt").click(function() { 
     var postData = { 
      text: $("#input-box").val(), 
      rotate: $("#rotate").val() 
     }; 
     $.post('encrypt', postData); 
     return false; 
    }); 
}); 
    </script> 

    <div class="container"> 
    <legend>Caesar cipher</legend> 
    <div class="row"> 
     <form name="ciepher" method="POST" action=""> 
     {% csrf_token %} 
     <!--form code --> 
     <button class="btn" name="encrypt" id="encrypt"><span class="icon-arrow-right"></span></button> 
     </form> 

urls.py:

urlpatterns = [ 
    url(r'^$', views.home, name="home"), 
    url(r'^encrypt$', views.encrypt, name="encrypt") 
] 

views.py:

def home(request): 
    return render_to_response("home.html", context_instance = RequestContext(request)) 

def encrypt(request): 
    input_text = request.POST["text"] 
    rotate = request.POST["rotate"] 
    output_text = models.encode(input_text, rotate) 
    frequency = models.get_frequency(input_text) 
    return render_to_response("home.html", {'input_text': input_text, 'rotate': rotate, 'output_text': output_text, 'frequency': frequency}, context_instance = RequestContext(request)) 

あなたはCSRFトークンを送信していないあなたに

+0

あなたの意見を投稿してください。ログイン/許可/テストがどこかで失敗する必要があります。 – Airith

+0

あなたのビューに権限の問題のようです。ビューはどのように見えますか? – JClarke

+0

@Jclarke追加ビュー –

答えて

1

ありがとうございました。あなたのフォームにはありますが、Ajax経由でデータを投稿するのは、通常のフォーム送信ではなく、トークンをAjaxのポスト・データに含める必要があります。