3

私は Django を初めて使用し、Google の検索結果のページやページだけでなく、ここでも同様の質問を投げかけましたが、まだ治療法を見つけていません!

私の Web サイトには、CSRF 検証を使用するログイン フォームがあります。PC/Windows や Android の携帯電話やタブレットでは問題はありませんでしたが、iPhone や Mac コンピューターにログインしようとすると、次のエラーが表示ます

禁じられた (403)

CSRF 検証に失敗しました。リクエストは中止されました。

詳細については、DEBUG=True を使用して入手できます。

迅速な修正を提供する一般的な問題がいくつかあるようですが、すべての基本事項をカバーしていると思います. 繰り返しになりますが、前に述べたように、私は Django の専門家ではありません。私の設定は次のとおりです。

設定.py

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',

ビュー.py

def default(request):
    if request.user.is_anonymous():
        return HttpResponseRedirect(reverse('auth_login'))
    try:
        request.user.voter
    except Voter.DoesNotExist:
        return render_to_response('main/profile.html', {'form': form},
                   context_instance=RequestContext(request))
    return render_to_response('main/ballot.html', {'form': form},
                   context_instance=RequestContext(request))

login.html

<form action="" method="post" id="authentication_form" class="uniForm">
    {% csrf_token %}
    {{ form|as_uni_form }}
    <div class="buttonHolder">
        <input type="submit" value="Log in" class="primaryAction" />
    </div>
</form>

ちなみに、'django.middleware.csrf.CsrfResponseMiddleware' を setting.py に追加すると、サーバーが壊れて 500 エラーが発生します。それが何を意味するのかわかりませんが、私はそれについて言及することにしました。

4

0 に答える 0