2017-06-13 148 views
0

我收到'CSRF令牌丟失或不正確'錯誤,但我已在網絡表單中添加{% csrf_token%}標記。任何想法爲什麼我仍然面臨這個錯誤?CSRF令牌丟失或不正確,即使包含令牌標記

def index(request): 
    if request.method == 'POST': 
     form = RequestForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return render(request, 'index.html') 
    else: 
     form = RequestForm() 
    return render(request, 'index.html', {'form': form})` 

我不能發佈的模板,但我使用令牌如圖線以下

<form id="reqForm" action="" method="POST" enctype="text/plain">{% csrf_token %} 
+0

如果您查看源你你可以看到一個帶有csrf標記值的隱藏輸入框嗎? –

+0

是的,現在我可以,刪除enctype屬性後。謝謝。 – krish

回答

0

它看起來像你的問題是在你的形式enctype="text/plain"。 CSRF保護假設發佈數據是經過表格編碼的。

最簡單的解決方法是完全刪除,這相當於:

enctype="enctype=application/x-www-form-urlencoded" 

如果你上傳你的表格文件,你可以使用:

enctype="multipart/form-data" 
+0

是的,它的工作。謝謝 – krish

+0

是的,我上傳一個文件在我的網頁形式,任何想法我應該如何處理後端?我在我的模型中使用models.FileField()。 – krish

+0

這真的是一個單獨的問題。我會從[文檔](https://docs.djangoproject.com/en/1.11/topics/http/file-uploads/#basic-file-uploads)開始,如果遇到問題,請提出一個新問題。 – Alasdair

相關問題