2013-07-15 3 views
-1

J'utilise Ajax pour soumettre des données de formulaire à une autre page, puis rediriger le navigateur vers cette page. Voici le code que je utilise:Ajax demande envoi POST et requête GET

$(".step").submit(function(e){ 
     e.preventDefault(); 
     $.ajax({ 
      url: "/dashboard/step2/", 
      type: "post", 
      data: paramObj, 
      success: function(response){ 
       console.log(response); 
       window.location.href="/dashboard/step2/"; 
      } 
     }); 
    }); 

Cependant, ce code envoie un POST et une requête GET. Cela provoque d'autres problèmes car j'ai d'autres fonctions qui reposent sur le fait que la seule requête envoyée est une requête POST. Des idées ou des suggestions?

+0

Quels sont les problèmes cela cause? Comment devrait-il se comporter? – FakeRainBrigand

+0

J'ai une autre fonction qui se ferme quand une requête GET est envoyée –

Répondre

3

Cela provoque un GET parce que vous indiquez le navigateur pour accéder à/tableau de bord/étape 2/en exécutant la commande window.location.href="/dashboard/step2/";

+0

Je le sais. Ce que je veux faire est de rediriger vers cette page sans spécifier explicitement que –

+0

Alors pourquoi utilisez-vous AJAX? Le navigateur est parfaitement capable d'envoyer des données de formulaire à une URL sans javascript. –

+0

Je prends des données de plusieurs formes à soumettre à une autre page qui exécute d'autres fonctions –

0

Soumettre le formulaire après ajax success comme ceci:

$(".step").submit(function(e) { 
    var form = $(this); 
    if (form.data('success') != '1') { // run this if ajax call is not completed 
     e.preventDefault(); 
     $.ajax({ 
      url: "/dashboard/step2/", 
      type: "post", 
      data: paramObj, 
      success: function(response) { 
       form.data('success', '1'); 
       $(".step").submit(); 
      } 
     }); 
    } 
});