Symfony2: Le jeton CSRF est invalide. S'il vous plaît essayer de soumettre à nouveau le formulaire
J'ai un formulaire où je dois remplir certaines informations dans un champ.
Même si j'ai mis quelque chose à l'intérieur, j'obtiens l'erreur:
The CSRF token is invalid. Please try to resubmit the form
Liés à cette question: symfony2 CSRF invalide je suis en utilisant correctement le $form->bindRequest()
if ($this->getRequest()->getMethod() == 'POST') {
$form->bindRequest($this->getRequest());
if ($form->isValid())
{
...
}
Voici mon modèle (rameau) code:
<div class="item item-last">
<h1>Create Affiliation</h1>
{% if valid == false %}
<div class="error">
{{ form_errors(form) }}
{{ form_errors(form.affiliation) }}
{{ error }}
</div>
{% endif %}
{% if app.session.flash('user-notice') != '' %}
<div class="flash-notice">
{% autoescape false %}
{{ app.session.flash('user-notice') }}
{% endautoescape %}
</div>
{% endif %}
</div>
<div class="item item-last">
<form action="{{ path('SciForumVersion2Bundle_user_submission_affiliation_create', {'hash_key' : submission.hashkey, 'author_id' : author.id }) }}?ajax=no" method="POST" class="authorForm" {{ form_enctype(form) }}>
<div style="float:left;">
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td>
{{ form_label(form.affiliation) }}
</td>
<td>
{{ form_widget(form.affiliation, { 'attr': {'size': 40} }) }}
</td>
</tr>
<tr>
<td>
</td>
<td>
<div class="button button-left button-cancel">
<img src="{{ asset('bundles/sciforumversion2/images/design/new/button-red.png') }}"/>
<a href="{{ path('SciForumVersion2Bundle_user_submission_author_edit', { 'hash_key' : submission.hashkey, 'author_id' : 0 }) }}" class="submission_link">cancel</a>
</div>
<div style="float: left;"> </div>
<div class="button button-left button-cancel">
<img src="{{ asset('bundles/sciforumversion2/images/design/new/button.png') }}"/>
<input type="submit" name="login" value="submit" />
</div>
<div style="clear: both;"></div>
</td>
</tr>
</table>
</div>
{{ form_rest(form) }}
</form>
</div>
Et voici le code js:
function init_submission_functions()
{
init_fck();
$(".submission_link").unbind("click").bind("click", function() {
var href = $(this).attr("href");
if( href == null || href == '' ) return false;
$.ajax({
type: "POST",
async: true,
url: href,
cache: false,
dataType: "json",
success: function(data) {
$("#content .contentwrap .itemwrap").html( data.content );
init_submission_functions();
}
});
return false;
});
$(".authorForm").unbind("submit").bind("submit", function() {
var href = $(this).attr("action");
if( href == null || href == '' ) return false;
var affiliation = "blabla";
$.ajax({
type: "POST",
async: true,
url: href,
affiliation: affiliation,
cache: false,
dataType: "json",
success: function(data) {
$("#content .contentwrap .itemwrap").html( data.content );
init_submission_functions();
}
});
return false;
});
}
Mais je reçois toujours le même message d'erreur.
Pourriez-vous également de coller votre modèle?
oui de la corse, je vais modifier ma question le plus tôt possible.
fait. Peut-être que j'ai oublié de mentionner que je suis en utilisant aussi d'Ajax pour la forme.
le travail de la forme, sans l'aide d'Ajax?
Nous montrer le code JS.
oui de la corse, je vais modifier ma question le plus tôt possible.
fait. Peut-être que j'ai oublié de mentionner que je suis en utilisant aussi d'Ajax pour la forme.
le travail de la forme, sans l'aide d'Ajax?
Nous montrer le code JS.
OriginalL'auteur Miloš | 2012-10-31
Vous devez vous connecter pour publier un commentaire.
Envoyer une forme sérialisée à l'aide de la
serialize
méthode jQuery:De cette façon, Symfony va gérer la soumission de la requête comme une requête normale — vous n'avez pas à faire quelque chose de spécial pour gérer un Ajax formulaire de soumission. Tout ce que vous devez faire est de retourner un
JsonResponse
— si vous en avez besoin, bien sûr.Voici un exemple de manipulation de la forme — de l'adapter à vos besoins:
L'autre moyen serait d'utiliser des modèles différents:
form.json.twig
etform.html.twig
— lire la documentation pour plus de détails.Sur Symfony côté, vous permet de gérer le formulaire comme toute forme habituelle.
Ok. Encore une question, s'il vous plaît, comment faire pour retourner la JsonResponse? le "respone" de la "fonction (réponse)" est le jsonResponse ?
Mise à jour de ma réponse.
Je vous remercie beaucoup.
OriginalL'auteur Elnur Abdurrakhimov