web-dev-qa-db-fra.com

Comment remplacer toute la page Web html par une réponse ajax?

Avant de passer à la question précise, je dois expliquer quelques étapes élémentaires.

Premièrement, l’application en question traite de la gestion des rendez-vous en ligne par les clients.

Après avoir rempli un formulaire avec les traitements du centre de beauté, le client fournit ses informations à la page de confirmation.

Maintenant, cette page effectue une demande ajax pour stocker le rendez-vous dans la base de données.

Si tout est réussi, une page contenant les détails du rendez-vous avec le message de réussite est affichée.

Le problème est que la page est actuellement affichée uniquement dans la réponse, c'est-à-dire dans l'onglet Navigateur de la console réseau.

Donc, ma question est simple:How can I replace the entire structure of the html page with actual one shown in the response?

J'ai trouvé beaucoup de questions sur le Web, même sur StackOverflow. Mais tout cela est limité sur une annexe à une div. Je n'ai pas besoin de raccrocher mais aussi de remplacer le <html>, comment réécrire la page HTML. Je ne sais pas comment faire cela et j'ai besoin de vos conseils.

Pour être complet, voici le code qui me revient réponse ajax html:

       $.ajax({
          'type': 'POST',
          'url': 'backend_api/ajax_save_appointment',
          'data': postData,
          'success': function(response)
           {
               console.log(response);
           },
           'error': function(jqXHR, textStatus, errorThrown)
           {
               console.log('Error on saving appointment:', jqXHR, textStatus, errorThrown);    
           }
       });
7
Dillinger

Si votre réponse comprend les balises <head> et <body>

$("html").html(response);.

Sinon, et ce n'est que du contenu, alors faites:

$("body").html(response);.

17
L Ja

si la réponse est le contenu HTML, vous pouvez utiliser cette ligne de code:

...
'success': function(response)
       {
           $("body").html(response);
       }
...

mettre à jour:

cela sera difficile de remplacer le tag html, mais ce que vous pouvez faire:

...
'success': function(response)
       {
           $("html").html($("html", response).html());
       }
...

vous analysez la réponse avec jquery, récupérant le contenu du code HTML et remplaçant le contenu du code HTML actuel

cette question a déjà été traitée ici: Remplacer la page HTML par le contenu récupéré via AJAX

Fondamentalement, vous pouvez essayer (mon mauvais, cela ne fonctionne pas sur IE):

document.open();
document.write(newContent);
document.close();

ou, puisque vous utilisez jquery

$("body").html(data);

Cordialement

0
AdZaf