2016-04-03 26 views
0

をviews.pyにrequest.post.get()メソッドを使用する場合、このHTMLコード禁止403 CSRFエラーHTMLページから

<form action="http://127.0.0.1:8000/minor/postdata/" method="POST"> 
data:<br> 
    <input type="text" name="data"><br> 


<input type="submit" value="Submit"> 

</form> 

あるviews.pyコード

from django.shortcuts import render 
from django.http import HttpResponse 
from django.http import HttpRequest 
from django.db import models 
from datetime import datetime 
# Create your views here. 

def postdata(request): 
    if request.method == "POST": 
     data=request.POST.get('data') 
return HttpResponse(data)` 

あります単純なhtmlページからの投稿データをリクエストに対応するソリューションを見つけることができません。 GETリクエストのコードを取得できます。 このサーバーをAndroidアプリから接続する必要があります

答えて

0

あなたの投稿リクエストにcsrf_tokenが送信されていないためです。セキュリティ上の理由から、djangoはすべてのPOSTリクエストでcsrf_tokensをチェックします。

あなたはこのように、csrf_token templatetagを使用して、テンプレートにcsrf_tokenを追加することができます。

<form action="http://127.0.0.1:8000/minor/postdata/" method="POST"> 
{% csrf_token %} 

読む:How to use CSRF token in Django

+0

まあ、私は簡単なHTMLページを使用しています....テンプレートとURLを直接呼び出していないがページから –

+0

CSRFをチェックしないビューがあれば、あなたのビューに 'csrf_except'デコレータを使用してください。それ以外の場合は、JSを使用してcsrf cookieを取得し、その値をフォームに挿入する必要があります。 – v1k45

関連する問題