Question

Je fouettant actuellement un formulaire de contact personnalisé sur un site wordpress que je suis en train de soumettre via ajax avec jQuery, mais quand je joue la fonction .post $, Firebug signale une erreur 404 dans la console, même si Je peux taper l'URL dans ma barre d'adresse et afficher la page correctement. Je ne suis pas poster interdomaine.

Voici un exemple de mon code, avec le code non pertinent supprimé:

<form action="" method="post" onsubmit="return submitContactForm()" class="contactform">
 <!-- inputs etc here -->
</form>

<script type="text/javascript">
function submitContactForm() {
  // Omitted error checking here, return false on error
  $.post('/contact'/, $('.contactform').serialize(), function(data) {
    alert(data);
    return false;
  });
  return true;
}
</script>

Le poste est jamais réussi et la forme SOUMET la façon « normale » à chaque fois.

J'ai essayé beaucoup de combinaisons dans la partie url de $ .post y compris / contact /, / contact, contact / contact /, même l'URL complète du site avec pas de chance. Quelqu'un at-il eu ce problème avant? Ou suis-je en train de faire quelque chose de manière flagrante mal? Ma seule supposition est quelque chose à voir avec mon /% postname% / permalien structure autre que je suis paumé!

Toutes les idées / pensées appréciées

Merci, Andy

Était-ce utile?

La solution 2

J'ai finalement compris ce qui se passe. Fondamentalement, le poste ajax est en cours d'exécution asynchrounously, donc avant que la réponse avait été receieved le script de traitement continué

Ajout async: false à un appel résolu le problème .ajax $

Merci pour l'aide

Autres conseils

Ceci est dans la documentation jQuery:

Ceci est un raccourci fonction Ajax, qui est équivalent à:

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success
  dataType: dataType
});

Essayez ceci:

        $(function()
        {
            $("button#send").click(function() {
                $.ajax({
                    type: "POST",
                    url: "post.php",
                    data: $("#form").serialize(),
                    success: function(msg){
                        $("#msg_ok").html(msg);
                        $("#form").reset();
                        //alert(msg);
                    }
                });
            });
        });

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top