it-swarm.com.ru

Как заменить всю html-страницу ответом ajax?

Прежде чем перейти к конкретному вопросу, мне нужно объяснить несколько основных шагов.

Во-первых, рассматриваемое приложение имеет дело с управлением назначениями клиентов онлайн.

Клиент после заполнения формы с процедурами для салона красоты и предоставления своей информации приходит на страницу подтверждения.

Теперь эта страница выполняет ajax-запрос для сохранения встречи в базе данных.

Если все прошло успешно, отображается страница с информацией о встрече с сообщением об успехе.

Проблема в том, что страница в данный момент отображается только в ответе, то есть во вкладке сетевой консоли браузера.

Так что мой вопрос прост:How can I replace the entire structure of the html page with actual one shown in the response?

Я нашел много вопросов в Интернете, даже в StackOverflow. Но все это ограничивается добавлением в div. Мне не нужно зависать, но также заменить <html>, как переписать HTML-страницу. Я понятия не имею, как это сделать, и мне нужен совет от вас.

Для полноты, это код, который возвращает мне ajax response 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

Если ваш ответ содержит теги <head> и <body>

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

Если нет, и это только содержание, то выполните:

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

17
L Ja

если ответ является HTML-контентом, вы можете использовать эту строку кода:

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

Обновление:

это будет трудно заменить HTML-тег, но что вы можете сделать:

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

вы анализируете ответ с помощью jquery, получаете содержимое html и заменяете содержимое текущего html

6
Fribu - Smart Solutions

этот вопрос уже рассматривался здесь: Заменить HTML-страницу содержимым, полученным через AJAX

В принципе, вы можете попробовать (мой плохой, это не работает на IE):

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

или, так как вы используете jquery

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

С уважением

0
AdZaf