Django : erreur `CSRF verification failed` sur mon formulaire

posée 2 months ago267 vuesfr

7

Mon formulaire POST renvoie « Forbidden (403) CSRF verification failed. Request aborted. » Je suis en local.

Diagnostic IA

Généré par IA. Ce n'est pas une réponse — la communauté ci-dessous le confirme ou le corrige. Vérifiez toujours avant de vous y fier.

posée 2 months ago

1 réponse

4
✓
✓ Réponse acceptée

Django exige un jeton CSRF sur toutes les requêtes POST. Vérifie :

1. Dans le template, le tag à l'intérieur du <form> :

<form method="post">
  {% csrf_token %}
  ...
</form>

2. La vue utilise bien render(request, ...), qui passe le contexte de requête. 3. Appels JavaScript (fetch) : envoie l'en-tête X-CSRFToken avec la valeur du cookie csrftoken. 4. Django 4+ derrière HTTPS ou un domaine différent : ajoute l'origine dans les réglages :

CSRF_TRUSTED_ORIGINS = ['https://monsite.ht']

Ne désactive pas la protection avec @csrf_exempt pour « faire marcher ». Réserve-le aux webhooks authentifiés par signature.

Connectez-vous pour dire si ça a marché.

answered 2 months ago

Sign in and verify your email to post an answer.